@swishapp/react 0.121.0 → 0.121.1-unstable.20260513151041
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { ApiError, ApiResponse, EditItemListsSuccessResponse, EditItemVariantSuccessResponse, EventName, Intent, IntentResponse, IntentToData, Item, PageInfo, PaginatedApiResponse, SaveItemSuccessResponse, SwishApp,
|
|
1
|
+
import * as _swishapp_sdk3 from "@swishapp/sdk";
|
|
2
|
+
import { ApiError, ApiResponse, EditItemListsSuccessResponse, EditItemVariantSuccessResponse, EventName, Intent, IntentResponse, IntentToData, Item, PageInfo, PaginatedApiResponse, SaveItemSuccessResponse, SwishApp, SwishOptionsInput, UnsaveItemSuccessResponse } from "@swishapp/sdk";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
4
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
5
|
export * from "@swishapp/sdk";
|
|
@@ -14,7 +14,7 @@ interface SwishContextValue {
|
|
|
14
14
|
//#region src/context.d.ts
|
|
15
15
|
interface SwishProviderProps {
|
|
16
16
|
children: ReactNode;
|
|
17
|
-
options:
|
|
17
|
+
options: SwishOptionsInput & {
|
|
18
18
|
swishSdkUrl?: string;
|
|
19
19
|
};
|
|
20
20
|
}
|
|
@@ -57,8 +57,8 @@ declare const useSwishIntent: <I extends Intent = Intent>(intent: I, ...args: In
|
|
|
57
57
|
//#region src/hooks/use-swish-lists.d.ts
|
|
58
58
|
declare const useSwishLists: () => {
|
|
59
59
|
loading: boolean;
|
|
60
|
-
lists:
|
|
61
|
-
error:
|
|
60
|
+
lists: _swishapp_sdk3.ListDetail[] | null;
|
|
61
|
+
error: _swishapp_sdk3.ApiError | null;
|
|
62
62
|
reset: () => void;
|
|
63
63
|
};
|
|
64
64
|
//#endregion
|
|
@@ -73,8 +73,8 @@ declare const useSwishItems: ({
|
|
|
73
73
|
}?: UseSwishItemsOptions) => {
|
|
74
74
|
loading: boolean;
|
|
75
75
|
data: Item[];
|
|
76
|
-
pageInfo:
|
|
77
|
-
error:
|
|
76
|
+
pageInfo: _swishapp_sdk3.PageInfo | null;
|
|
77
|
+
error: _swishapp_sdk3.ApiError | null;
|
|
78
78
|
reset: () => void;
|
|
79
79
|
hasMore: boolean;
|
|
80
80
|
loadMore: () => void;
|
|
@@ -101,7 +101,7 @@ declare const useSwishItem: ({
|
|
|
101
101
|
}: UseSwishItemProps) => {
|
|
102
102
|
saved: boolean;
|
|
103
103
|
loading: boolean;
|
|
104
|
-
error:
|
|
104
|
+
error: _swishapp_sdk3.ApiError | null;
|
|
105
105
|
save: () => Promise<void>;
|
|
106
106
|
unsave: () => Promise<void>;
|
|
107
107
|
updateLists: () => Promise<void>;
|
|
@@ -113,7 +113,7 @@ declare const useSwishItem: ({
|
|
|
113
113
|
declare const useSwishItemCount: () => {
|
|
114
114
|
count: number;
|
|
115
115
|
loading: boolean;
|
|
116
|
-
error:
|
|
116
|
+
error: _swishapp_sdk3.ApiError | null;
|
|
117
117
|
};
|
|
118
118
|
//#endregion
|
|
119
119
|
export { SwishContextValue, SwishProvider, type SwishProviderProps, useSwish, useSwishIntent, useSwishItem, useSwishItemCount, useSwishItems, useSwishLists, useSwishQuery };
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["defaultSwishSdkUrl","swishSdkUrl","swish","value: SwishContextValue","defaultRefetchEvents: EventName[]","tokenUpdateEvent: EventName","error"],"sources":["../src/context.tsx","../src/hooks/use-swish.ts","../src/hooks/use-swish-query.ts","../src/hooks/use-swish-intent.ts","../src/hooks/use-swish-lists.ts","../src/hooks/use-swish-items.ts","../src/utils/shopify-utils.ts","../src/hooks/use-swish-item.ts","../src/hooks/use-swish-item-count.ts"],"sourcesContent":["import {\n type SwishApp,\n type SwishOptions,\n swishSdkUrl as defaultSwishSdkUrl,\n} from \"@swishapp/sdk\";\nimport { createContext, ReactNode, useEffect, useRef, useState } from \"react\";\nimport type { SwishContextValue } from \"./types\";\n\nexport const SwishContext = createContext<SwishContextValue | null>(null);\n\nexport interface SwishProviderProps {\n children: ReactNode;\n options: SwishOptions & { swishSdkUrl?: string };\n}\n\nexport function SwishProvider({\n children,\n options: { swishSdkUrl = defaultSwishSdkUrl, ...options },\n}: SwishProviderProps) {\n const [swish, setSwish] = useState<SwishApp | null>(null);\n const [isLoading, setIsLoading] = useState(typeof window !== \"undefined\");\n const [error, setError] = useState<Error | null>(null);\n const optionsRef = useRef<SwishOptions>(options);\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n let cancelled = false;\n\n const initializeSdk = async () => {\n try {\n setIsLoading(true);\n setError(null);\n\n const { createSwish } = await import(\n /* webpackIgnore: true */\n swishSdkUrl\n );\n const swish = await createSwish(optionsRef.current);\n\n if (!cancelled) {\n setSwish(swish);\n }\n } catch (err) {\n console.error(\"Failed to initialize Swish\", err);\n if (!cancelled) {\n setError(\n err instanceof Error ? err : new Error(\"Failed to initialize Swish\")\n );\n }\n } finally {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n };\n\n initializeSdk();\n\n return () => {\n cancelled = true;\n };\n }, []);\n\n const value: SwishContextValue = {\n swish,\n isLoading,\n error,\n };\n\n return (\n <SwishContext.Provider value={value}>{children}</SwishContext.Provider>\n );\n}\n","import type { SwishApp } from \"@swishapp/sdk\";\nimport { useContext } from \"react\";\nimport { SwishContext } from \"../context\";\n\nexport function useSwish(): SwishApp | null {\n const context = useContext(SwishContext);\n\n if (typeof window !== \"undefined\" && window.swish) {\n return window.swish;\n }\n\n if (!context) {\n throw new Error(\"useSwish must be used within a SwishProvider\");\n }\n\n return context.swish;\n}\n","import type {\n ApiError,\n ApiResponse,\n EventName,\n PageInfo,\n PaginatedApiResponse,\n SwishApp,\n} from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useSwish } from \"./use-swish\";\n\nexport type FetchFn<TResponse, TVariables> = (\n swish: SwishApp[\"api\"],\n variables?: TVariables,\n) => Promise<TResponse>;\n\nconst defaultRefetchEvents: EventName[] = [\n \"item-create\",\n \"item-update\",\n \"item-delete\",\n \"item-lists-update\",\n \"list-create\",\n \"list-update\",\n \"list-delete\",\n \"token-update\",\n];\n\nconst tokenUpdateEvent: EventName = \"token-update\";\n\ntype DataOf<T> = T extends { data: infer D } ? D : never;\n\nexport const useSwishQuery = <\n TResponse extends ApiResponse<any> | PaginatedApiResponse<any>,\n TVariables,\n>(\n fetch: FetchFn<TResponse, TVariables>,\n options?: {\n variables?: TVariables;\n skip?: boolean;\n refetch?: boolean | EventName[];\n },\n) => {\n const swish = useSwish();\n const fetchRef = useRef<FetchFn<TResponse, TVariables>>(fetch);\n\n const [data, setData] = useState<DataOf<TResponse> | null>(null);\n const [pageInfo, setPageInfo] = useState<PageInfo | null>(null);\n const [error, setError] = useState<ApiError | null>(null);\n const [loading, setLoading] = useState(!options?.skip);\n const [initialized, setInitialized] = useState(false);\n const refetching = loading && initialized;\n\n const reset = useCallback(() => {\n setData(null);\n setPageInfo(null);\n setError(null);\n setLoading(false);\n setInitialized(false);\n }, []);\n\n const deps = options?.variables ? Object.values(options.variables) : [];\n const skip = !!options?.skip;\n const refetchEvents =\n options?.refetch === true ? defaultRefetchEvents\n : Array.isArray(options?.refetch) ? [...options.refetch, tokenUpdateEvent]\n : [];\n\n const refetchEventsRef = useRef(refetchEvents);\n refetchEventsRef.current = refetchEvents;\n\n // Stable string key so the effect re-subscribes only when events actually change\n const refetchEventsKey = refetchEvents.join(\",\");\n\n const executeFetch = useCallback(() => {\n if (!swish || skip) {\n return;\n }\n\n setLoading(true);\n\n fetchRef\n .current(swish.api, options?.variables)\n .then((response) => {\n setError(\"error\" in response ? response.error : null);\n setData(\"data\" in response ? response.data : null);\n setPageInfo(\"pageInfo\" in response ? response.pageInfo : null);\n })\n .catch((error) => setError(error))\n .finally(() => {\n setLoading(false);\n setInitialized(true);\n });\n }, [swish, skip, ...deps]);\n\n const refetch = useCallback(() => {\n executeFetch();\n }, [executeFetch]);\n\n useEffect(() => {\n if (!swish) {\n return;\n }\n\n executeFetch();\n\n const unsubscribe = swish.events.subscribe(refetchEventsRef.current, () => {\n refetch();\n });\n\n return () => unsubscribe();\n }, [executeFetch, refetch, refetchEventsKey]);\n\n return useMemo(\n () => ({\n data,\n pageInfo,\n error,\n loading,\n reset,\n refetch,\n refetching,\n }),\n [data, pageInfo, error, loading, reset, refetch, refetching],\n );\n};\n","import type { Intent, IntentResponse, IntentToData } from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useSwish } from \"./use-swish\";\n\nexport const useSwishIntent = <I extends Intent = Intent>(\n intent: I,\n ...args: IntentToData<I> extends void ? [] | [undefined] : [IntentToData<I>]\n) => {\n const swish = useSwish();\n const [pending, setPending] = useState(false);\n const dataRef = useRef(args);\n\n useEffect(() => {\n dataRef.current = args;\n }, [args]);\n\n const invoke = useCallback(async (): Promise<IntentResponse<I>> => {\n if (!swish) {\n throw new Error(\"Swish SDK not initialized\");\n }\n\n setPending(true);\n try {\n const activity = await swish.intents.invoke(intent, ...dataRef.current);\n const response = await activity.complete;\n return response as IntentResponse<I>;\n } finally {\n setPending(false);\n }\n }, [swish]);\n\n return { invoke, pending };\n};\n","import { useMemo } from \"react\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\nexport const useSwishLists = () => {\n const {\n data: lists,\n loading,\n error,\n reset,\n } = useSwishQuery((api) => api.lists.list(), {\n refetch: [\n \"item-lists-update\",\n \"item-delete\",\n \"list-create\",\n \"list-update\",\n \"list-delete\",\n ],\n });\n\n return useMemo(\n () => ({\n loading,\n lists,\n error,\n reset,\n }),\n [lists, loading, error, reset]\n );\n};\n","import type { Item } from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\nexport interface UseSwishItemsOptions {\n listId?: string;\n limit?: number;\n}\n\nexport const useSwishItems = ({\n listId,\n limit = 24,\n}: UseSwishItemsOptions = {}) => {\n const [nextPage, setNextPage] = useState<string | null>(null);\n const [data, setData] = useState<Item[]>([]);\n\n const {\n data: remoteData,\n pageInfo,\n loading,\n error,\n reset: resetRemoteData,\n } = useSwishQuery((api, variables) => api.items.list(variables), {\n variables: {\n page: nextPage ?? undefined,\n limit,\n listId,\n },\n refetch: false,\n });\n\n const reset = useCallback(() => {\n setData([]);\n setNextPage(null);\n resetRemoteData();\n }, [resetRemoteData]);\n\n useEffect(() => {\n if (remoteData) {\n setData((prev) => [...prev, ...remoteData]);\n }\n }, [remoteData]);\n\n const loadMore = useCallback(() => {\n if (pageInfo?.next) {\n setNextPage(pageInfo.next);\n }\n }, [pageInfo?.next]);\n\n return useMemo(\n () => ({\n loading,\n data,\n pageInfo,\n error,\n reset,\n hasMore: !!pageInfo?.next,\n loadMore,\n }),\n [data, pageInfo, loading, error, reset, loadMore]\n );\n};\n","export const gidToId = (gid: string) => {\n return gid?.split(\"/\").pop();\n};\n","import type {\n SaveItemSuccessResponse,\n UnsaveItemSuccessResponse,\n EditItemListsSuccessResponse,\n EditItemVariantSuccessResponse,\n} from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { gidToId } from \"../utils/shopify-utils\";\nimport { useSwishIntent } from \"./use-swish-intent\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\ninterface UseSwishItemProps {\n productId: string | number;\n variantId?: string | number;\n itemId?: string;\n onSave?: (data: SaveItemSuccessResponse[\"data\"]) => void;\n onUnsave?: (data: UnsaveItemSuccessResponse[\"data\"]) => void;\n onListsUpdate?: (data: EditItemListsSuccessResponse[\"data\"]) => void;\n onVariantUpdate?: (data: EditItemVariantSuccessResponse[\"data\"]) => void;\n}\n\nexport const useSwishItem = ({\n productId,\n variantId,\n itemId,\n onSave,\n onUnsave,\n onListsUpdate,\n onVariantUpdate,\n}: UseSwishItemProps) => {\n const [savedItemId, setSavedItemId] = useState<string | null>(itemId ?? null);\n\n const onUnsaveRef =\n useRef<NonNullable<UseSwishItemProps[\"onUnsave\"]>>(onUnsave);\n const onSaveRef = useRef<NonNullable<UseSwishItemProps[\"onSave\"]>>(onSave);\n const onListsUpdateRef =\n useRef<NonNullable<UseSwishItemProps[\"onListsUpdate\"]>>(onListsUpdate);\n const onVariantUpdateRef =\n useRef<NonNullable<UseSwishItemProps[\"onVariantUpdate\"]>>(onVariantUpdate);\n\n onUnsaveRef.current = onUnsave;\n onSaveRef.current = onSave;\n onListsUpdateRef.current = onListsUpdate;\n onVariantUpdateRef.current = onVariantUpdate;\n\n const { invoke: saveItem, pending: creatingItem } = useSwishIntent(\n \"save:item\",\n {\n productId,\n variantId,\n }\n );\n\n const { invoke: editItemLists } = useSwishIntent(\"edit:item-lists\", {\n itemId: savedItemId ?? \"\",\n });\n\n const { invoke: editItemVariant } = useSwishIntent(\"edit:item-variant\", {\n itemId: savedItemId ?? \"\",\n productId,\n variantId,\n });\n\n const { invoke: unsaveItem } = useSwishIntent(\"unsave:item\", {\n itemId: savedItemId ?? \"\",\n });\n\n const query = useMemo(() => {\n if (variantId) {\n return `variant:${gidToId(variantId.toString())}`;\n }\n return `product:${gidToId(productId.toString())}`;\n }, [productId, variantId]);\n\n // Load saved items for the product or variant\n const {\n data: savedItems,\n loading: savedItemsLoading,\n error: savedItemsError,\n } = useSwishQuery((api, variables) => api.items.list(variables), {\n refetch: [\"item-create\", \"item-update\", \"item-delete\"],\n variables: {\n limit: 1,\n query,\n },\n skip: Boolean(itemId) || !productId,\n });\n\n const saved = useMemo(() => Boolean(savedItemId), [savedItemId]);\n const error = useMemo(() => savedItemsError, [savedItemsError]);\n const loading = useMemo(\n () => savedItemsLoading || creatingItem,\n [savedItemsLoading, creatingItem]\n );\n\n useEffect(() => {\n if (itemId) return;\n\n if (savedItems?.[0]) {\n setSavedItemId(savedItems[0].id);\n } else {\n setSavedItemId(null);\n }\n }, [savedItems, itemId]);\n\n const unsave = useCallback(async () => {\n const response = await unsaveItem();\n\n if (response.code === \"ok\") {\n const data = response.data;\n setSavedItemId(null);\n onUnsaveRef.current?.(data);\n }\n }, [unsaveItem]);\n\n const updateLists = useCallback(async () => {\n const response = await editItemLists();\n if (response.code !== \"ok\") {\n return;\n }\n if (response.intent === \"unsave:item\") {\n // Item was unsaved from list-select\n const data = response.data as UnsaveItemSuccessResponse[\"data\"];\n setSavedItemId(null);\n onUnsaveRef.current?.(data);\n } else {\n const data = response.data as EditItemListsSuccessResponse[\"data\"];\n onListsUpdateRef.current?.(data);\n }\n }, [editItemLists]);\n\n const updateVariant = useCallback(async () => {\n const response = await editItemVariant();\n if (response.code === \"ok\") {\n const data = response.data;\n onVariantUpdateRef.current?.(data);\n }\n }, [editItemVariant]);\n\n const save = useCallback(async () => {\n const response = await saveItem();\n\n if (response.code === \"ok\") {\n const data = response.data;\n setSavedItemId(data.item.id);\n onSaveRef.current?.(data);\n }\n }, [saveItem]);\n\n const toggle = useCallback(async () => {\n if (saved) {\n await unsave();\n } else {\n await save();\n }\n }, [saved, save, unsave]);\n\n return useMemo(() => {\n return {\n saved,\n loading,\n error,\n save,\n unsave,\n updateLists,\n updateVariant,\n toggle,\n };\n }, [saved, loading, error, save, unsave, updateLists, updateVariant, toggle]);\n};\n","import { useMemo } from \"react\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\nexport const useSwishItemCount = () => {\n const { data, loading, error } = useSwishQuery((api) => api.items.count(), {\n refetch: [\"item-create\", \"item-delete\"],\n });\n\n return useMemo(() => {\n return {\n count: data?.count ?? 0,\n loading,\n error,\n };\n }, [data, loading, error]);\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["defaultSwishSdkUrl","swishSdkUrl","swish","value: SwishContextValue","defaultRefetchEvents: EventName[]","tokenUpdateEvent: EventName","error"],"sources":["../src/context.tsx","../src/hooks/use-swish.ts","../src/hooks/use-swish-query.ts","../src/hooks/use-swish-intent.ts","../src/hooks/use-swish-lists.ts","../src/hooks/use-swish-items.ts","../src/utils/shopify-utils.ts","../src/hooks/use-swish-item.ts","../src/hooks/use-swish-item-count.ts"],"sourcesContent":["import {\n type SwishApp,\n type SwishOptionsInput,\n swishSdkUrl as defaultSwishSdkUrl,\n} from \"@swishapp/sdk\";\nimport { createContext, ReactNode, useEffect, useRef, useState } from \"react\";\nimport type { SwishContextValue } from \"./types\";\n\nexport const SwishContext = createContext<SwishContextValue | null>(null);\n\nexport interface SwishProviderProps {\n children: ReactNode;\n options: SwishOptionsInput & { swishSdkUrl?: string };\n}\n\nexport function SwishProvider({\n children,\n options: { swishSdkUrl = defaultSwishSdkUrl, ...options },\n}: SwishProviderProps) {\n const [swish, setSwish] = useState<SwishApp | null>(null);\n const [isLoading, setIsLoading] = useState(typeof window !== \"undefined\");\n const [error, setError] = useState<Error | null>(null);\n const optionsRef = useRef<SwishOptionsInput>(options);\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n let cancelled = false;\n\n const initializeSdk = async () => {\n try {\n setIsLoading(true);\n setError(null);\n\n const { createSwish } = await import(\n /* webpackIgnore: true */\n swishSdkUrl\n );\n const swish = await createSwish(optionsRef.current);\n\n if (!cancelled) {\n setSwish(swish);\n }\n } catch (err) {\n console.error(\"Failed to initialize Swish\", err);\n if (!cancelled) {\n setError(\n err instanceof Error ? err : new Error(\"Failed to initialize Swish\")\n );\n }\n } finally {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n };\n\n initializeSdk();\n\n return () => {\n cancelled = true;\n };\n }, []);\n\n const value: SwishContextValue = {\n swish,\n isLoading,\n error,\n };\n\n return (\n <SwishContext.Provider value={value}>{children}</SwishContext.Provider>\n );\n}\n","import type { SwishApp } from \"@swishapp/sdk\";\nimport { useContext } from \"react\";\nimport { SwishContext } from \"../context\";\n\nexport function useSwish(): SwishApp | null {\n const context = useContext(SwishContext);\n\n if (typeof window !== \"undefined\" && window.swish) {\n return window.swish;\n }\n\n if (!context) {\n throw new Error(\"useSwish must be used within a SwishProvider\");\n }\n\n return context.swish;\n}\n","import type {\n ApiError,\n ApiResponse,\n EventName,\n PageInfo,\n PaginatedApiResponse,\n SwishApp,\n} from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useSwish } from \"./use-swish\";\n\nexport type FetchFn<TResponse, TVariables> = (\n swish: SwishApp[\"api\"],\n variables?: TVariables,\n) => Promise<TResponse>;\n\nconst defaultRefetchEvents: EventName[] = [\n \"item-create\",\n \"item-update\",\n \"item-delete\",\n \"item-lists-update\",\n \"list-create\",\n \"list-update\",\n \"list-delete\",\n \"token-update\",\n];\n\nconst tokenUpdateEvent: EventName = \"token-update\";\n\ntype DataOf<T> = T extends { data: infer D } ? D : never;\n\nexport const useSwishQuery = <\n TResponse extends ApiResponse<any> | PaginatedApiResponse<any>,\n TVariables,\n>(\n fetch: FetchFn<TResponse, TVariables>,\n options?: {\n variables?: TVariables;\n skip?: boolean;\n refetch?: boolean | EventName[];\n },\n) => {\n const swish = useSwish();\n const fetchRef = useRef<FetchFn<TResponse, TVariables>>(fetch);\n\n const [data, setData] = useState<DataOf<TResponse> | null>(null);\n const [pageInfo, setPageInfo] = useState<PageInfo | null>(null);\n const [error, setError] = useState<ApiError | null>(null);\n const [loading, setLoading] = useState(!options?.skip);\n const [initialized, setInitialized] = useState(false);\n const refetching = loading && initialized;\n\n const reset = useCallback(() => {\n setData(null);\n setPageInfo(null);\n setError(null);\n setLoading(false);\n setInitialized(false);\n }, []);\n\n const deps = options?.variables ? Object.values(options.variables) : [];\n const skip = !!options?.skip;\n const refetchEvents =\n options?.refetch === true ? defaultRefetchEvents\n : Array.isArray(options?.refetch) ? [...options.refetch, tokenUpdateEvent]\n : [];\n\n const refetchEventsRef = useRef(refetchEvents);\n refetchEventsRef.current = refetchEvents;\n\n // Stable string key so the effect re-subscribes only when events actually change\n const refetchEventsKey = refetchEvents.join(\",\");\n\n const executeFetch = useCallback(() => {\n if (!swish || skip) {\n return;\n }\n\n setLoading(true);\n\n fetchRef\n .current(swish.api, options?.variables)\n .then((response) => {\n setError(\"error\" in response ? response.error : null);\n setData(\"data\" in response ? response.data : null);\n setPageInfo(\"pageInfo\" in response ? response.pageInfo : null);\n })\n .catch((error) => setError(error))\n .finally(() => {\n setLoading(false);\n setInitialized(true);\n });\n }, [swish, skip, ...deps]);\n\n const refetch = useCallback(() => {\n executeFetch();\n }, [executeFetch]);\n\n useEffect(() => {\n if (!swish) {\n return;\n }\n\n executeFetch();\n\n const unsubscribe = swish.events.subscribe(refetchEventsRef.current, () => {\n refetch();\n });\n\n return () => unsubscribe();\n }, [executeFetch, refetch, refetchEventsKey]);\n\n return useMemo(\n () => ({\n data,\n pageInfo,\n error,\n loading,\n reset,\n refetch,\n refetching,\n }),\n [data, pageInfo, error, loading, reset, refetch, refetching],\n );\n};\n","import type { Intent, IntentResponse, IntentToData } from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useSwish } from \"./use-swish\";\n\nexport const useSwishIntent = <I extends Intent = Intent>(\n intent: I,\n ...args: IntentToData<I> extends void ? [] | [undefined] : [IntentToData<I>]\n) => {\n const swish = useSwish();\n const [pending, setPending] = useState(false);\n const dataRef = useRef(args);\n\n useEffect(() => {\n dataRef.current = args;\n }, [args]);\n\n const invoke = useCallback(async (): Promise<IntentResponse<I>> => {\n if (!swish) {\n throw new Error(\"Swish SDK not initialized\");\n }\n\n setPending(true);\n try {\n const activity = await swish.intents.invoke(intent, ...dataRef.current);\n const response = await activity.complete;\n return response as IntentResponse<I>;\n } finally {\n setPending(false);\n }\n }, [swish]);\n\n return { invoke, pending };\n};\n","import { useMemo } from \"react\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\nexport const useSwishLists = () => {\n const {\n data: lists,\n loading,\n error,\n reset,\n } = useSwishQuery((api) => api.lists.list(), {\n refetch: [\n \"item-lists-update\",\n \"item-delete\",\n \"list-create\",\n \"list-update\",\n \"list-delete\",\n ],\n });\n\n return useMemo(\n () => ({\n loading,\n lists,\n error,\n reset,\n }),\n [lists, loading, error, reset]\n );\n};\n","import type { Item } from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\nexport interface UseSwishItemsOptions {\n listId?: string;\n limit?: number;\n}\n\nexport const useSwishItems = ({\n listId,\n limit = 24,\n}: UseSwishItemsOptions = {}) => {\n const [nextPage, setNextPage] = useState<string | null>(null);\n const [data, setData] = useState<Item[]>([]);\n\n const {\n data: remoteData,\n pageInfo,\n loading,\n error,\n reset: resetRemoteData,\n } = useSwishQuery((api, variables) => api.items.list(variables), {\n variables: {\n page: nextPage ?? undefined,\n limit,\n listId,\n },\n refetch: false,\n });\n\n const reset = useCallback(() => {\n setData([]);\n setNextPage(null);\n resetRemoteData();\n }, [resetRemoteData]);\n\n useEffect(() => {\n if (remoteData) {\n setData((prev) => [...prev, ...remoteData]);\n }\n }, [remoteData]);\n\n const loadMore = useCallback(() => {\n if (pageInfo?.next) {\n setNextPage(pageInfo.next);\n }\n }, [pageInfo?.next]);\n\n return useMemo(\n () => ({\n loading,\n data,\n pageInfo,\n error,\n reset,\n hasMore: !!pageInfo?.next,\n loadMore,\n }),\n [data, pageInfo, loading, error, reset, loadMore]\n );\n};\n","export const gidToId = (gid: string) => {\n return gid?.split(\"/\").pop();\n};\n","import type {\n SaveItemSuccessResponse,\n UnsaveItemSuccessResponse,\n EditItemListsSuccessResponse,\n EditItemVariantSuccessResponse,\n} from \"@swishapp/sdk\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { gidToId } from \"../utils/shopify-utils\";\nimport { useSwishIntent } from \"./use-swish-intent\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\ninterface UseSwishItemProps {\n productId: string | number;\n variantId?: string | number;\n itemId?: string;\n onSave?: (data: SaveItemSuccessResponse[\"data\"]) => void;\n onUnsave?: (data: UnsaveItemSuccessResponse[\"data\"]) => void;\n onListsUpdate?: (data: EditItemListsSuccessResponse[\"data\"]) => void;\n onVariantUpdate?: (data: EditItemVariantSuccessResponse[\"data\"]) => void;\n}\n\nexport const useSwishItem = ({\n productId,\n variantId,\n itemId,\n onSave,\n onUnsave,\n onListsUpdate,\n onVariantUpdate,\n}: UseSwishItemProps) => {\n const [savedItemId, setSavedItemId] = useState<string | null>(itemId ?? null);\n\n const onUnsaveRef =\n useRef<NonNullable<UseSwishItemProps[\"onUnsave\"]>>(onUnsave);\n const onSaveRef = useRef<NonNullable<UseSwishItemProps[\"onSave\"]>>(onSave);\n const onListsUpdateRef =\n useRef<NonNullable<UseSwishItemProps[\"onListsUpdate\"]>>(onListsUpdate);\n const onVariantUpdateRef =\n useRef<NonNullable<UseSwishItemProps[\"onVariantUpdate\"]>>(onVariantUpdate);\n\n onUnsaveRef.current = onUnsave;\n onSaveRef.current = onSave;\n onListsUpdateRef.current = onListsUpdate;\n onVariantUpdateRef.current = onVariantUpdate;\n\n const { invoke: saveItem, pending: creatingItem } = useSwishIntent(\n \"save:item\",\n {\n productId,\n variantId,\n }\n );\n\n const { invoke: editItemLists } = useSwishIntent(\"edit:item-lists\", {\n itemId: savedItemId ?? \"\",\n });\n\n const { invoke: editItemVariant } = useSwishIntent(\"edit:item-variant\", {\n itemId: savedItemId ?? \"\",\n productId,\n variantId,\n });\n\n const { invoke: unsaveItem } = useSwishIntent(\"unsave:item\", {\n itemId: savedItemId ?? \"\",\n });\n\n const query = useMemo(() => {\n if (variantId) {\n return `variant:${gidToId(variantId.toString())}`;\n }\n return `product:${gidToId(productId.toString())}`;\n }, [productId, variantId]);\n\n // Load saved items for the product or variant\n const {\n data: savedItems,\n loading: savedItemsLoading,\n error: savedItemsError,\n } = useSwishQuery((api, variables) => api.items.list(variables), {\n refetch: [\"item-create\", \"item-update\", \"item-delete\"],\n variables: {\n limit: 1,\n query,\n },\n skip: Boolean(itemId) || !productId,\n });\n\n const saved = useMemo(() => Boolean(savedItemId), [savedItemId]);\n const error = useMemo(() => savedItemsError, [savedItemsError]);\n const loading = useMemo(\n () => savedItemsLoading || creatingItem,\n [savedItemsLoading, creatingItem]\n );\n\n useEffect(() => {\n if (itemId) return;\n\n if (savedItems?.[0]) {\n setSavedItemId(savedItems[0].id);\n } else {\n setSavedItemId(null);\n }\n }, [savedItems, itemId]);\n\n const unsave = useCallback(async () => {\n const response = await unsaveItem();\n\n if (response.code === \"ok\") {\n const data = response.data;\n setSavedItemId(null);\n onUnsaveRef.current?.(data);\n }\n }, [unsaveItem]);\n\n const updateLists = useCallback(async () => {\n const response = await editItemLists();\n if (response.code !== \"ok\") {\n return;\n }\n if (response.intent === \"unsave:item\") {\n // Item was unsaved from list-select\n const data = response.data as UnsaveItemSuccessResponse[\"data\"];\n setSavedItemId(null);\n onUnsaveRef.current?.(data);\n } else {\n const data = response.data as EditItemListsSuccessResponse[\"data\"];\n onListsUpdateRef.current?.(data);\n }\n }, [editItemLists]);\n\n const updateVariant = useCallback(async () => {\n const response = await editItemVariant();\n if (response.code === \"ok\") {\n const data = response.data;\n onVariantUpdateRef.current?.(data);\n }\n }, [editItemVariant]);\n\n const save = useCallback(async () => {\n const response = await saveItem();\n\n if (response.code === \"ok\") {\n const data = response.data;\n setSavedItemId(data.item.id);\n onSaveRef.current?.(data);\n }\n }, [saveItem]);\n\n const toggle = useCallback(async () => {\n if (saved) {\n await unsave();\n } else {\n await save();\n }\n }, [saved, save, unsave]);\n\n return useMemo(() => {\n return {\n saved,\n loading,\n error,\n save,\n unsave,\n updateLists,\n updateVariant,\n toggle,\n };\n }, [saved, loading, error, save, unsave, updateLists, updateVariant, toggle]);\n};\n","import { useMemo } from \"react\";\nimport { useSwishQuery } from \"./use-swish-query\";\n\nexport const useSwishItemCount = () => {\n const { data, loading, error } = useSwishQuery((api) => api.items.count(), {\n refetch: [\"item-create\", \"item-delete\"],\n });\n\n return useMemo(() => {\n return {\n count: data?.count ?? 0,\n loading,\n error,\n };\n }, [data, loading, error]);\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swishapp/react",
|
|
3
|
-
"version": "0.121.
|
|
3
|
+
"version": "0.121.1-unstable.20260513151041",
|
|
4
4
|
"description": "React bindings for Swish SDK",
|
|
5
5
|
"author": "Swish",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@swishapp/sdk": "0.121.
|
|
13
|
+
"@swishapp/sdk": "0.121.1-unstable.20260513151041"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
16
|
"react": ">=16.8.0 || >=17.0.0 || >=18.0.0",
|