From 971a45c6b330d0ea51990eeb8d76531205551e6b Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Thu, 9 Jan 2025 16:24:59 -0600 Subject: [PATCH 01/11] Add load more button for async options --- .../examples/nextjs/package-lock.json | 11 +++--- .../examples/nextjs/package.json | 2 +- .../src/components/ControlSelect.tsx | 30 ++++++++++++-- .../src/components/LoadMoreButton.tsx | 35 +++++++++++++++++ .../src/components/RemoteOptionsContainer.tsx | 39 +++++++++++++++++++ .../src/hooks/customization-context.tsx | 3 ++ pnpm-lock.yaml | 18 ++++----- 7 files changed, 120 insertions(+), 18 deletions(-) create mode 100644 packages/connect-react/src/components/LoadMoreButton.tsx diff --git a/packages/connect-react/examples/nextjs/package-lock.json b/packages/connect-react/examples/nextjs/package-lock.json index c5246f24c095f..f92d0aea8e20e 100644 --- a/packages/connect-react/examples/nextjs/package-lock.json +++ b/packages/connect-react/examples/nextjs/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "dependencies": { "@pipedream/connect-react": "file:../..", - "@pipedream/sdk": "^1.0.6", + "@pipedream/sdk": "^1.1.4", "next": "15.0.3", "react": "19.0.0-rc-66855b96-20241106", "react-dom": "19.0.0-rc-66855b96-20241106" @@ -23,7 +23,7 @@ }, "../..": { "name": "@pipedream/connect-react", - "version": "1.0.0-preview.10", + "version": "1.0.0-preview.18", "license": "MIT", "dependencies": { "@pipedream/sdk": "workspace:^", @@ -566,9 +566,10 @@ "link": true }, "node_modules/@pipedream/sdk": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@pipedream/sdk/-/sdk-1.0.6.tgz", - "integrity": "sha512-SIhe8JOA47Uypa2OfhEpyDpyCNi2oYpavnUVVwLuqe4jLbYQEiOWjnSdJ6wfDxKwA8QT3MRbEEJ/+uVxYHMeGA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@pipedream/sdk/-/sdk-1.1.4.tgz", + "integrity": "sha512-Xjozgk/uhUyz+3h8OHXNUTaEDik1Y4kzDPmlfjeHqimwyLmY+QuRVsQCqvs4VZBSCt4fhzQt197O1aqFE+5E2g==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rails/actioncable": "^8.0.0", "commander": "^12.1.0", diff --git a/packages/connect-react/examples/nextjs/package.json b/packages/connect-react/examples/nextjs/package.json index a35c8049a9028..02aa363bb7538 100644 --- a/packages/connect-react/examples/nextjs/package.json +++ b/packages/connect-react/examples/nextjs/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@pipedream/connect-react": "file:../..", - "@pipedream/sdk": "^1.0.6", + "@pipedream/sdk": "^1.1.4", "next": "15.0.3", "react": "19.0.0-rc-66855b96-20241106", "react-dom": "19.0.0-rc-66855b96-20241106" diff --git a/packages/connect-react/src/components/ControlSelect.tsx b/packages/connect-react/src/components/ControlSelect.tsx index 1a191c3bcdd65..0d557303871ba 100644 --- a/packages/connect-react/src/components/ControlSelect.tsx +++ b/packages/connect-react/src/components/ControlSelect.tsx @@ -1,20 +1,26 @@ import { useMemo } from "react"; -import Select, { Props as ReactSelectProps } from "react-select"; +import Select, { + Props as ReactSelectProps, components, +} from "react-select"; import type { CSSObjectWithLabel } from "react-select"; import CreatableSelect from "react-select/creatable"; import { useFormFieldContext } from "../hooks/form-field-context"; import { useCustomize } from "../hooks/customization-context"; import type { BaseReactSelectProps } from "../hooks/customization-context"; +import { LoadMoreButton } from "./LoadMoreButton"; // XXX T and ConfigurableProp should be related type ControlSelectProps = { isCreatable?: boolean; options: {label: string; value: T;}[]; selectProps?: ReactSelectProps; + canLoadMore?: boolean; + showLoadMoreButton?: boolean; + onLoadMore?: () => void; }; export function ControlSelect({ - isCreatable, options, selectProps, + isCreatable, options, selectProps, canLoadMore, showLoadMoreButton, onLoadMore, }: ControlSelectProps) { const formFieldCtx = useFormFieldContext(); const { @@ -69,6 +75,24 @@ export function ControlSelect({ options, ]); + const LoadMore = ({ children, ...props }) => { + return ( + + {children} +
+ +
+
+ ) + } + + const props = select.getProps("controlSelect", baseSelectProps) + if (showLoadMoreButton) { + props.components = { + ...props.components, + MenuList: LoadMore, + } + } const MaybeCreatableSelect = isCreatable ? CreatableSelect : Select; @@ -81,7 +105,7 @@ export function ControlSelect({ isMulti={prop.type.endsWith("[]")} isClearable={true} required={!prop.optional} - {...select.getProps("controlSelect", baseSelectProps)} + {...props} {...selectProps} onChange={(o) => { if (o) { diff --git a/packages/connect-react/src/components/LoadMoreButton.tsx b/packages/connect-react/src/components/LoadMoreButton.tsx new file mode 100644 index 0000000000000..7acba15c8b4f2 --- /dev/null +++ b/packages/connect-react/src/components/LoadMoreButton.tsx @@ -0,0 +1,35 @@ +import { useCustomize } from "../hooks/customization-context"; +import type { CSSProperties } from "react"; + +export type ButtonProps = { + enabled: boolean; + onClick: () => void; +}; + +export const LoadMoreButton = (props: ButtonProps) => { + const { + enabled, onClick, + } = props; + const { + getProps, theme, + } = useCustomize(); + + const baseStyles: CSSProperties = { + backgroundColor: theme.colors.primary, + borderRadius: theme.borderRadius, + border: "solid 1px", + borderColor: theme.colors.primary25, + color: theme.colors.primary25, + padding: "0.5rem", + fontSize: "0.8125rem", + fontWeight: "450", + gridArea: "control", + cursor: "pointer", + width: "100%", + }; + return ( + + ); +}; diff --git a/packages/connect-react/src/components/RemoteOptionsContainer.tsx b/packages/connect-react/src/components/RemoteOptionsContainer.tsx index 50b29f96a5bd8..500ebef2f1f67 100644 --- a/packages/connect-react/src/components/RemoteOptionsContainer.tsx +++ b/packages/connect-react/src/components/RemoteOptionsContainer.tsx @@ -29,6 +29,24 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP setQuery, ] = useState(""); + const [ + page, + setPage, + ] = useState(0); + + const [ + context, + setContext, + ] = useState(undefined); + + const [ + pageable, + setPageable, + ] = useState({ + page: 0, + prevContext: undefined, + }) + const configuredPropsUpTo: Record = {}; for (let i = 0; i < idx; i++) { const prop = configurableProps[i]; @@ -36,6 +54,8 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP } const componentConfigureInput: ComponentConfigureOpts = { userId, + page, + prevContext: context, componentId: component.key, propName: prop.name, configuredProps: configuredPropsUpTo, @@ -55,6 +75,16 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP setError, ] = useState<{ name: string; message: string; }>(); + const [ + canLoadMore, + setCanLoadMore, + ] = useState(false); + + const onLoadMore = () => { + setPage(pageable.page) + setContext(pageable.prevContext) + } + // TODO handle error! const { isFetching, data, refetch, @@ -72,6 +102,10 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP const { options, stringOptions, errors, } = res; + setPageable({ + page: page + 1, + prevContext: res.context, + }) if (errors?.length) { // TODO field context setError? (for validity, etc.) try { @@ -85,6 +119,7 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP return []; } if (options?.length) { + setCanLoadMore(true) return options; } if (stringOptions?.length) { @@ -95,6 +130,7 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP value: stringOption, }); } + setCanLoadMore(true) return options; } return []; @@ -116,6 +152,9 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP return ( ; optionalFields: ComponentProps; optionalFieldButton: ComponentProps; + loadMoreButton: ComponentProps; }; export type CustomClassNamesFn = ((opts: CustomizationOpts) => string); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a87ee996c9727..b8db78a0952fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12484,8 +12484,8 @@ importers: specifier: file:../.. version: file:packages/connect-react(@types/react@18.3.12)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) '@pipedream/sdk': - specifier: ^1.0.6 - version: 1.0.7 + specifier: ^1.1.4 + version: 1.1.4 next: specifier: 15.0.3 version: 15.0.3(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) @@ -15157,8 +15157,8 @@ packages: resolution: {integrity: sha512-f8FXEaoBqIOQpI4vVOO8OrHRAjwQYO4pKIwMUcGRkzS5KJ6cZ/7JYYGyXEu7NcS+y1VfyegtbJWu4tWacDjQZg==} engines: {node: '>=18.0.0'} - '@pipedream/sdk@1.0.7': - resolution: {integrity: sha512-ec3XowyXvy6KPxlr0/roOgv1Y2K3PQXJKYm1dc5ezewxImMon/FdHrxLOTIaqq2CGdTG/PG60EIR1Jm9LTOQlQ==} + '@pipedream/sdk@1.1.4': + resolution: {integrity: sha512-Xjozgk/uhUyz+3h8OHXNUTaEDik1Y4kzDPmlfjeHqimwyLmY+QuRVsQCqvs4VZBSCt4fhzQt197O1aqFE+5E2g==} engines: {node: '>=18.0.0'} '@pipedream/sftp@0.4.1': @@ -24728,22 +24728,22 @@ packages: superagent@3.8.1: resolution: {integrity: sha512-VMBFLYgFuRdfeNQSMLbxGSLfmXL/xc+OO+BZp41Za/NRDBet/BNbkRJrYzCUu0u4GU0i/ml2dtT8b9qgkw9z6Q==} engines: {node: '>= 4.0'} - deprecated: Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at . + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net superagent@4.1.0: resolution: {integrity: sha512-FT3QLMasz0YyCd4uIi5HNe+3t/onxMyEho7C3PSqmti3Twgy2rXT4fmkTz6wRL6bTF4uzPcfkUCa8u4JWHw8Ag==} engines: {node: '>= 6.0'} - deprecated: Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at . + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net superagent@5.3.1: resolution: {integrity: sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==} engines: {node: '>= 7.0.0'} - deprecated: Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at . + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net superagent@7.1.6: resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} engines: {node: '>=6.4.0 <13 || >=14'} - deprecated: Please downgrade to v7.1.5 if you need IE/ActiveXObject support OR upgrade to v8.0.0 as we no longer support IE and published an incorrect patch version (see https://github.com/visionmedia/superagent/issues/1731) + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} @@ -30547,7 +30547,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@pipedream/sdk@1.0.7': + '@pipedream/sdk@1.1.4': dependencies: '@rails/actioncable': 8.0.0 commander: 12.1.0 From 7c10ebe6f7de7e27912d4c8794f6b2cefba6bc0e Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Thu, 9 Jan 2025 16:41:12 -0600 Subject: [PATCH 02/11] Hide load more button on error --- .../connect-react/src/components/RemoteOptionsContainer.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/connect-react/src/components/RemoteOptionsContainer.tsx b/packages/connect-react/src/components/RemoteOptionsContainer.tsx index 500ebef2f1f67..c04d4e930bd2f 100644 --- a/packages/connect-react/src/components/RemoteOptionsContainer.tsx +++ b/packages/connect-react/src/components/RemoteOptionsContainer.tsx @@ -138,6 +138,10 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP enabled: !!queryEnabled, }); + const showLoadMoreButton = () => { + return !isFetching && !error && pageable.prevContext !== undefined + } + // TODO show error in different spot! const placeholder = error ? error.message @@ -153,7 +157,7 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP return ( Date: Thu, 9 Jan 2025 16:42:09 -0600 Subject: [PATCH 03/11] Bump package version --- packages/connect-react/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/connect-react/package.json b/packages/connect-react/package.json index 85d5b14a7749d..4c3e17869e8a0 100644 --- a/packages/connect-react/package.json +++ b/packages/connect-react/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/connect-react", - "version": "1.0.0-preview.18", + "version": "1.0.0-preview.19", "description": "Pipedream Connect library for React", "files": [ "dist" From 916354acfeda937b4b20f3344c6c727f2bbf9067 Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Thu, 9 Jan 2025 16:45:21 -0600 Subject: [PATCH 04/11] Fix linter errors --- .../connect-react/src/components/ControlSelect.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/connect-react/src/components/ControlSelect.tsx b/packages/connect-react/src/components/ControlSelect.tsx index 0d557303871ba..7d60ee7b94d62 100644 --- a/packages/connect-react/src/components/ControlSelect.tsx +++ b/packages/connect-react/src/components/ControlSelect.tsx @@ -30,7 +30,7 @@ export function ControlSelect({ select, theme, } = useCustomize(); - const baseSelectProps: BaseReactSelectProps = { + const baseSelectProps: BaseReactSelectProps = { styles: { container: (base): CSSObjectWithLabel => ({ ...base, @@ -75,7 +75,9 @@ export function ControlSelect({ options, ]); - const LoadMore = ({ children, ...props }) => { + const LoadMore = ({ + children, ...props + }) => { return ( {children} @@ -125,7 +127,9 @@ export function ControlSelect({ } } else if (typeof o === "object" && "value" in o) { if (prop.withLabel) { - onChange({__lv: o}); + onChange({ + __lv: o, + }); } else { onChange(o.value); } From c15e6aa58efd1d5063618702351d9ed71f02d1ed Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Fri, 10 Jan 2025 17:41:24 -0600 Subject: [PATCH 05/11] Hook up load more button --- .../examples/nextjs/package-lock.json | 2 +- .../src/components/ControlSelect.tsx | 9 ++-- .../src/components/LoadMoreButton.tsx | 12 ++--- .../src/components/RemoteOptionsContainer.tsx | 47 +++++++++++-------- 4 files changed, 38 insertions(+), 32 deletions(-) diff --git a/packages/connect-react/examples/nextjs/package-lock.json b/packages/connect-react/examples/nextjs/package-lock.json index f92d0aea8e20e..26d7a03f4680b 100644 --- a/packages/connect-react/examples/nextjs/package-lock.json +++ b/packages/connect-react/examples/nextjs/package-lock.json @@ -23,7 +23,7 @@ }, "../..": { "name": "@pipedream/connect-react", - "version": "1.0.0-preview.18", + "version": "1.0.0-preview.19", "license": "MIT", "dependencies": { "@pipedream/sdk": "workspace:^", diff --git a/packages/connect-react/src/components/ControlSelect.tsx b/packages/connect-react/src/components/ControlSelect.tsx index 7d60ee7b94d62..c9c3a1679232b 100644 --- a/packages/connect-react/src/components/ControlSelect.tsx +++ b/packages/connect-react/src/components/ControlSelect.tsx @@ -1,3 +1,4 @@ +import * as React from "react"; import { useMemo } from "react"; import Select, { Props as ReactSelectProps, components, @@ -14,13 +15,12 @@ type ControlSelectProps = { isCreatable?: boolean; options: {label: string; value: T;}[]; selectProps?: ReactSelectProps; - canLoadMore?: boolean; showLoadMoreButton?: boolean; onLoadMore?: () => void; }; export function ControlSelect({ - isCreatable, options, selectProps, canLoadMore, showLoadMoreButton, onLoadMore, + isCreatable, options, selectProps, showLoadMoreButton, onLoadMore, }: ControlSelectProps) { const formFieldCtx = useFormFieldContext(); const { @@ -76,13 +76,14 @@ export function ControlSelect({ ]); const LoadMore = ({ + // eslint-disable-next-line react/prop-types children, ...props }) => { return ( - {children} + { children }
- +
) diff --git a/packages/connect-react/src/components/LoadMoreButton.tsx b/packages/connect-react/src/components/LoadMoreButton.tsx index 7acba15c8b4f2..95747f78a5c01 100644 --- a/packages/connect-react/src/components/LoadMoreButton.tsx +++ b/packages/connect-react/src/components/LoadMoreButton.tsx @@ -2,14 +2,11 @@ import { useCustomize } from "../hooks/customization-context"; import type { CSSProperties } from "react"; export type ButtonProps = { - enabled: boolean; - onClick: () => void; + onChange: () => void; }; export const LoadMoreButton = (props: ButtonProps) => { - const { - enabled, onClick, - } = props; + const { onChange } = props; const { getProps, theme, } = useCustomize(); @@ -27,9 +24,10 @@ export const LoadMoreButton = (props: ButtonProps) => { cursor: "pointer", width: "100%", }; + return ( - ); }; diff --git a/packages/connect-react/src/components/RemoteOptionsContainer.tsx b/packages/connect-react/src/components/RemoteOptionsContainer.tsx index c04d4e930bd2f..5443205acfcc0 100644 --- a/packages/connect-react/src/components/RemoteOptionsContainer.tsx +++ b/packages/connect-react/src/components/RemoteOptionsContainer.tsx @@ -44,7 +44,8 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP setPageable, ] = useState({ page: 0, - prevContext: undefined, + prevContext: {}, + data: [], }) const configuredPropsUpTo: Record = {}; @@ -75,19 +76,22 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP setError, ] = useState<{ name: string; message: string; }>(); - const [ - canLoadMore, - setCanLoadMore, - ] = useState(false); - const onLoadMore = () => { setPage(pageable.page) setContext(pageable.prevContext) + setPageable({ + ...pageable, + prevContext: {}, + }) + } + + const canLoadMore = () => { + return Object.keys(pageable.prevContext || {}).length > 0 } // TODO handle error! const { - isFetching, data, refetch, + isFetching, refetch, } = useQuery({ queryKey: [ "componentConfigure", @@ -97,15 +101,11 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP setError(undefined); const res = await client.componentConfigure(componentConfigureInput); - // console.log("res", res) // XXX look at errors in response here too const { options, stringOptions, errors, } = res; - setPageable({ - page: page + 1, - prevContext: res.context, - }) + if (errors?.length) { // TODO field context setError? (for validity, etc.) try { @@ -118,9 +118,9 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP } return []; } + let _options = [] if (options?.length) { - setCanLoadMore(true) - return options; + _options = options; } if (stringOptions?.length) { const options = []; @@ -130,16 +130,24 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP value: stringOption, }); } - setCanLoadMore(true) - return options; + _options = options; } - return []; + const data = [ + ...pageable.data, + ..._options, + ] + setPageable({ + page: page + 1, + prevContext: res.context, + data, + }) + return data; }, enabled: !!queryEnabled, }); const showLoadMoreButton = () => { - return !isFetching && !error && pageable.prevContext !== undefined + return !isFetching && !error && canLoadMore() } // TODO show error in different spot! @@ -156,10 +164,9 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP return ( Date: Fri, 10 Jan 2025 17:42:33 -0600 Subject: [PATCH 06/11] Disable eslint error --- packages/connect-react/src/components/ControlSelect.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/connect-react/src/components/ControlSelect.tsx b/packages/connect-react/src/components/ControlSelect.tsx index c9c3a1679232b..2fbe489b81b48 100644 --- a/packages/connect-react/src/components/ControlSelect.tsx +++ b/packages/connect-react/src/components/ControlSelect.tsx @@ -92,6 +92,7 @@ export function ControlSelect({ const props = select.getProps("controlSelect", baseSelectProps) if (showLoadMoreButton) { props.components = { + // eslint-disable-next-line react/prop-types ...props.components, MenuList: LoadMore, } From f024e09914cedb406bdb1a2c315aac520974dd09 Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Fri, 10 Jan 2025 18:15:57 -0600 Subject: [PATCH 07/11] Fix canLoadMore logic --- .../src/components/RemoteOptionsContainer.tsx | 49 +++++++++++++------ 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/packages/connect-react/src/components/RemoteOptionsContainer.tsx b/packages/connect-react/src/components/RemoteOptionsContainer.tsx index 5443205acfcc0..56dee321fab1f 100644 --- a/packages/connect-react/src/components/RemoteOptionsContainer.tsx +++ b/packages/connect-react/src/components/RemoteOptionsContainer.tsx @@ -34,6 +34,11 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP setPage, ] = useState(0); + const [ + canLoadMore, + setCanLoadMore, + ] = useState(true); + const [ context, setContext, @@ -46,6 +51,7 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP page: 0, prevContext: {}, data: [], + values: new Set(), }) const configuredPropsUpTo: Record = {}; @@ -85,10 +91,6 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP }) } - const canLoadMore = () => { - return Object.keys(pageable.prevContext || {}).length > 0 - } - // TODO handle error! const { isFetching, refetch, @@ -132,22 +134,41 @@ export function RemoteOptionsContainer({ queryEnabled }: RemoteOptionsContainerP } _options = options; } - const data = [ - ...pageable.data, - ..._options, - ] - setPageable({ - page: page + 1, - prevContext: res.context, - data, - }) + + const newOptions = [] + const allValues = new Set(pageable.values) + for (const o of _options || []) { + const value = typeof o === "string" + ? o + : o.value + if (allValues.has(value)) { + continue + } + allValues.add(value) + newOptions.push(o) + } + let data = pageable.data + if (newOptions.length) { + data = [ + ...pageable.data, + ...newOptions, + ] + setPageable({ + page: page + 1, + prevContext: res.context, + data, + values: allValues, + }) + } else { + setCanLoadMore(false) + } return data; }, enabled: !!queryEnabled, }); const showLoadMoreButton = () => { - return !isFetching && !error && canLoadMore() + return !isFetching && !error && canLoadMore } // TODO show error in different spot! From f4080468df5d26424f4b09048954695347b0174b Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Tue, 14 Jan 2025 16:34:17 -0600 Subject: [PATCH 08/11] Remove React import statement --- packages/connect-react/src/components/ControlSelect.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/connect-react/src/components/ControlSelect.tsx b/packages/connect-react/src/components/ControlSelect.tsx index 2fbe489b81b48..6c5ad7bda6ce5 100644 --- a/packages/connect-react/src/components/ControlSelect.tsx +++ b/packages/connect-react/src/components/ControlSelect.tsx @@ -1,4 +1,3 @@ -import * as React from "react"; import { useMemo } from "react"; import Select, { Props as ReactSelectProps, components, From f847cd931933d0b22bde3cb62a0448783df7480a Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Tue, 14 Jan 2025 16:37:51 -0600 Subject: [PATCH 09/11] Remove React import statement --- pnpm-lock.yaml | 145 +++++++++++++++++++------------------------------ 1 file changed, 57 insertions(+), 88 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5af15c3977825..3c0fc66324891 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12387,10 +12387,10 @@ importers: version: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nextra: specifier: latest - version: 3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + version: 4.0.0(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) nextra-theme-docs: specifier: latest - version: 3.3.1(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.0.0(@types/react@18.3.12)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@4.0.0(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -14716,12 +14716,6 @@ packages: '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} - '@mdx-js/react@3.1.0': - resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - '@memberstack/admin@1.3.1': resolution: {integrity: sha512-ulRCIpt6k/3RIag+YyU2eW+b0Ik1pF+gXx2b+hYI3Mk6/NxwzZWTVC+YJw3BO3tRUq9TOFy7IaPMfm8wQTJYIA==} @@ -16791,8 +16785,8 @@ packages: '@tediousjs/connection-string@0.5.0': resolution: {integrity: sha512-7qSgZbincDDDFyRweCIEvZULFAw5iz/DeunhvuxpL31nfntX3P4Yd4HkHBRg9H8CdqY1e5WFN1PZIz/REL9MVQ==} - '@theguild/remark-mermaid@0.1.3': - resolution: {integrity: sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==} + '@theguild/remark-mermaid@0.2.0': + resolution: {integrity: sha512-o8n57TJy0OI4PCrNw8z6S+vpHtrwoQZzTA5Y3fL0U1NDRIoMg/78duWgEBFsCZcWM1G6zjE91yg1aKCsDwgE2Q==} peerDependencies: react: ^18.2.0 @@ -19663,10 +19657,6 @@ packages: ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -19915,9 +19905,6 @@ packages: resolution: {integrity: sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==} deprecated: flatten is deprecated in favor of utility frameworks such as lodash. - flexsearch@0.7.43: - resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} - flush-write-stream@2.0.0: resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==} @@ -20403,10 +20390,6 @@ packages: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - gtoken@5.3.2: resolution: {integrity: sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==} engines: {node: '>=10'} @@ -20879,10 +20862,6 @@ packages: is-electron@2.2.2: resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -22602,19 +22581,19 @@ packages: sass: optional: true - nextra-theme-docs@3.3.1: - resolution: {integrity: sha512-P305m2UcW2IDyQhjrcAu0qpdPArikofinABslUCAyixYShsmcdDRUhIMd4QBHYru4gQuVjGWX9PhWZZCbNvzDQ==} + nextra-theme-docs@4.0.0: + resolution: {integrity: sha512-IgX73GjkSLureZtP9gxanm3/N5hmznyXH4VCuDFZEk1DnX/PDyN77oXoaRYqDY8XaNwZ1EPGvYGd7RcMUiiGWw==} peerDependencies: - next: '>=13' - nextra: 3.3.1 + next: '>=14' + nextra: 4.0.0 react: '>=18' react-dom: '>=18' - nextra@3.3.1: - resolution: {integrity: sha512-jiwj+LfUPHHeAxJAEqFuglxnbjFgzAOnDWFsjv7iv3BWiX8OksDwd3I2Sv3j2zba00iIBDEPdNeylfzTtTLZVg==} + nextra@4.0.0: + resolution: {integrity: sha512-qcJ4cudhl7ooMWaqCtrpfkq93/OqtLzkQn98MncuHTZbjhAuqXQQz4rQqc5AI0GUX97cF//OhDgYjSEVpSRWEg==} engines: {node: '>=18'} peerDependencies: - next: '>=13' + next: '>=14' react: '>=18' react-dom: '>=18' @@ -22964,10 +22943,6 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@6.1.0: - resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} - engines: {node: '>=18'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -23633,6 +23608,11 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + react-compiler-runtime@0.0.0-experimental-22c6e49-20241219: + resolution: {integrity: sha512-bOAGaRL1ldfIIpbDsl+uV025Ta6RS6/cOjvvh8r2Vo7KtqB+RSvihVYRsWQz7ECKNPWdq5MClS845acwAwieDw==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -24168,10 +24148,6 @@ packages: search-insights@2.17.3: resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} @@ -24613,10 +24589,6 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -25981,6 +25953,24 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zustand@5.0.3: + resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} @@ -29924,12 +29914,6 @@ snapshots: - acorn - supports-color - '@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 18.3.12 - react: 18.3.1 - '@memberstack/admin@1.3.1': dependencies: axios: 1.6.8 @@ -32365,7 +32349,7 @@ snapshots: '@tediousjs/connection-string@0.5.0': {} - '@theguild/remark-mermaid@0.1.3(react@18.3.1)': + '@theguild/remark-mermaid@0.2.0(react@18.3.1)': dependencies: mermaid: 11.4.1 react: 18.3.1 @@ -35864,10 +35848,6 @@ snapshots: dependencies: type: 2.7.3 - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - extend@3.0.2: {} external-editor@3.1.0: @@ -36151,8 +36131,6 @@ snapshots: flatten@1.0.3: {} - flexsearch@0.7.43: {} - flush-write-stream@2.0.0: dependencies: inherits: 2.0.4 @@ -36893,13 +36871,6 @@ snapshots: graphql@16.9.0: {} - gray-matter@4.0.3: - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - gtoken@5.3.2: dependencies: gaxios: 4.3.3 @@ -37491,8 +37462,6 @@ snapshots: is-electron@2.2.2: {} - is-extendable@0.1.1: {} - is-extglob@2.1.1: {} is-finalizationregistry@1.0.2: @@ -39926,37 +39895,40 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@3.3.1(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + nextra-theme-docs@4.0.0(@types/react@18.3.12)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@4.0.0(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 - escape-string-regexp: 5.0.0 - flexsearch: 0.7.43 next: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: 0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nextra: 3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + nextra: 4.0.0(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) react: 18.3.1 + react-compiler-runtime: 0.0.0-experimental-22c6e49-20241219(react@18.3.1) react-dom: 18.3.1(react@18.3.1) scroll-into-view-if-needed: 3.1.0 zod: 3.23.8 + zod-validation-error: 3.4.0(zod@3.23.8) + zustand: 5.0.3(@types/react@18.3.12)(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - immer + - use-sync-external-store - nextra@3.3.1(@types/react@18.3.12)(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3): + nextra@4.0.0(acorn@8.14.0)(next@14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3): dependencies: '@formatjs/intl-localematcher': 0.5.8 '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mdx-js/mdx': 3.1.0(acorn@8.14.0) - '@mdx-js/react': 3.1.0(@types/react@18.3.12)(react@18.3.1) '@napi-rs/simple-git': 0.1.19 '@shikijs/twoslash': 1.24.0(typescript@5.6.3) - '@theguild/remark-mermaid': 0.1.3(react@18.3.1) + '@theguild/remark-mermaid': 0.2.0(react@18.3.1) '@theguild/remark-npm2yarn': 0.3.3 better-react-mathjax: 2.0.3(react@18.3.1) clsx: 2.1.1 estree-util-to-js: 2.0.0 estree-util-value-to-estree: 3.2.1 + fast-glob: 3.3.2 github-slugger: 2.0.0 - graceful-fs: 4.2.11 - gray-matter: 4.0.3 hast-util-to-estree: 3.1.0 katex: 0.16.11 mdast-util-from-markdown: 2.0.2 @@ -39964,8 +39936,8 @@ snapshots: mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 next: 14.2.19(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - p-limit: 6.1.0 react: 18.3.1 + react-compiler-runtime: 0.0.0-experimental-22c6e49-20241219(react@18.3.1) react-dom: 18.3.1(react@18.3.1) react-medium-image-zoom: 5.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rehype-katex: 7.0.1 @@ -39985,7 +39957,6 @@ snapshots: zod: 3.23.8 zod-validation-error: 3.4.0(zod@3.23.8) transitivePeerDependencies: - - '@types/react' - acorn - supports-color - typescript @@ -40404,10 +40375,6 @@ snapshots: dependencies: yocto-queue: 1.1.1 - p-limit@6.1.0: - dependencies: - yocto-queue: 1.1.1 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -41322,6 +41289,10 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + react-compiler-runtime@0.0.0-experimental-22c6e49-20241219(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -42227,11 +42198,6 @@ snapshots: search-insights@2.17.3: {} - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - selderee@0.11.0: dependencies: parseley: 0.12.1 @@ -42781,8 +42747,6 @@ snapshots: dependencies: ansi-regex: 6.1.0 - strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} strip-bom@4.0.0: {} @@ -44350,6 +44314,11 @@ snapshots: zod@3.23.8: {} + zustand@5.0.3(@types/react@18.3.12)(react@18.3.1): + optionalDependencies: + '@types/react': 18.3.12 + react: 18.3.1 + zwitch@1.0.5: {} zwitch@2.0.4: {} From 6fbcc4b3c0b053fb252e033e31e812d9333c9190 Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Tue, 14 Jan 2025 16:39:28 -0600 Subject: [PATCH 10/11] Remove React import statement --- pnpm-lock.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c0fc66324891..9b07038c2975d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5885,8 +5885,7 @@ importers: specifier: ^1.5.1 version: 1.6.6 - components/linkup: - specifiers: {} + components/linkup: {} components/linqs_cc: {} From 7f5d2fdde58094c4942b77c28c38cea9ce6c14a7 Mon Sep 17 00:00:00 2001 From: Biz Melesse Date: Wed, 15 Jan 2025 14:11:07 -0600 Subject: [PATCH 11/11] Update pnpm-lock.yaml --- pnpm-lock.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca391384a140c..591259caf88fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9592,8 +9592,7 @@ importers: components/showpad: {} - components/shutterstock: - specifiers: {} + components/shutterstock: {} components/sidetracker: {} @@ -12551,8 +12550,8 @@ importers: specifier: file:../.. version: file:packages/connect-react(@types/react@18.3.12)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) '@pipedream/sdk': - specifier: ^1.0.6 - version: 1.0.7 + specifier: ^1.1.4 + version: 1.1.5 next: specifier: 15.0.3 version: 15.0.3(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) @@ -15224,8 +15223,8 @@ packages: resolution: {integrity: sha512-f8FXEaoBqIOQpI4vVOO8OrHRAjwQYO4pKIwMUcGRkzS5KJ6cZ/7JYYGyXEu7NcS+y1VfyegtbJWu4tWacDjQZg==} engines: {node: '>=18.0.0'} - '@pipedream/sdk@1.0.7': - resolution: {integrity: sha512-ec3XowyXvy6KPxlr0/roOgv1Y2K3PQXJKYm1dc5ezewxImMon/FdHrxLOTIaqq2CGdTG/PG60EIR1Jm9LTOQlQ==} + '@pipedream/sdk@1.1.5': + resolution: {integrity: sha512-q+dGMsNSvIcDCi6JZES7pwNBW8Ms318WMNavO71Cye0bCtloeDSj5TiFbScy64/2FHja9keKAZ9ev8yVSsM+ew==} engines: {node: '>=18.0.0'} '@pipedream/sftp@0.4.1': @@ -30625,7 +30624,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@pipedream/sdk@1.0.7': + '@pipedream/sdk@1.1.5': dependencies: '@rails/actioncable': 8.0.0 commander: 12.1.0 @@ -31013,6 +31012,8 @@ snapshots: '@putout/operator-filesystem': 5.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3)) '@putout/operator-json': 2.2.0 putout: 36.13.1(eslint@8.57.1)(typescript@5.6.3) + transitivePeerDependencies: + - supports-color '@putout/operator-regexp@1.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3))': dependencies: