@lockerverse/react 0.2.138-dev.1 → 0.2.140-dev.1

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.
@@ -4,6 +4,8 @@ import { CreateLockerverseAuctionOptions, LockerverseAuction, LockerverseAuction
4
4
  type UseLockerverseAuctionOptions = AuctionRefreshOptions & {
5
5
  /** Initial server snapshot. The hook still refreshes on mount. */
6
6
  initialAuction?: LockerverseAuction;
7
+ /** Include one unlisted item when refreshing its direct item page. */
8
+ previewItemSlug?: string;
7
9
  };
8
10
  type UseLockerverseAuctionResult = {
9
11
  client: LockerverseAuctionClient;
@@ -1 +1 @@
1
- {"version":3,"file":"auction-data.d.ts","names":[],"sources":["../src/use-lockerverse-auction.ts"],"mappings":";;;KAcY,+BAA+B;;EAEzC,iBAAiB;;KAGP;EACV,QAAQ;;EAER,SAAS;EACT;EACA,OAAO;EACP;;;iBAIc,sBACd,SAAS,iCACT,qBACA,iBAAgB,+BACf"}
1
+ {"version":3,"file":"auction-data.d.ts","names":[],"sources":["../src/use-lockerverse-auction.ts"],"mappings":";;;KAcY,+BAA+B;;EAEzC,iBAAiB;;EAEjB;;KAGU;EACV,QAAQ;;EAER,SAAS;EACT;EACA,OAAO;EACP;;;iBAIc,sBACd,SAAS,iCACT,qBACA,iBAAgB,+BACf"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./immutable-resource-identity.js";import{n as t,t as n}from"./use-lockerverse-auctions.js";import{useCallback as r,useEffect as i,useRef as a,useState as o}from"react";import{createLockerverseAuctionClient as s}from"@lockerverse/sdk/auctions";function c(n,c,l={}){e(`auction`,{apiBaseUrl:n.apiBaseUrl,communitySlug:n.communitySlug,environment:n.environment,mediaBaseUrl:n.mediaBaseUrl,slug:c});let u=a(n.onError);u.current=n.onError;let[d]=o(()=>s({...n,onError:e=>u.current?.(e)})),f=a(0),[p,m]=o(0),[h,g]=o(()=>{let{initialAuction:e}=l;if(e&&e.slug!==c)throw TypeError(`Initial auction slug must match the requested auction.`);return{auction:e??null,error:null,loading:!0}}),_=r(()=>{f.current+=1,g(e=>({...e,error:null,loading:!0})),m(e=>e+1)},[]),v=t(_,l);return i(()=>{let e=!0,t=f.current,n=v();return d.load(c).then(n=>{e&&t===f.current&&g({auction:n,error:null,loading:!1})},n=>{e&&t===f.current&&g(e=>({...e,error:n,loading:!1}))}).finally(n),()=>{e=!1}},[d,c,p,v]),{...h,client:d,refresh:_}}export{c as useLockerverseAuction,n as useLockerverseAuctions};
1
+ import{t as e}from"./immutable-resource-identity.js";import{n as t,t as n}from"./use-lockerverse-auctions.js";import{useCallback as r,useEffect as i,useRef as a,useState as o}from"react";import{createLockerverseAuctionClient as s}from"@lockerverse/sdk/auctions";function c(n,c,l={}){e(`auction`,{apiBaseUrl:n.apiBaseUrl,communitySlug:n.communitySlug,environment:n.environment,mediaBaseUrl:n.mediaBaseUrl,previewItemSlug:l.previewItemSlug,slug:c});let u=a(n.onError);u.current=n.onError;let[d]=o(()=>s({...n,onError:e=>u.current?.(e)})),f=a(0),[p,m]=o(0),[h,g]=o(()=>{let{initialAuction:e}=l;if(e&&e.slug!==c)throw TypeError(`Initial auction slug must match the requested auction.`);return{auction:e??null,error:null,loading:!0}}),_=r(()=>{f.current+=1,g(e=>({...e,error:null,loading:!0})),m(e=>e+1)},[]),v=t(_,l);return i(()=>{let e=!0,t=f.current,n=v();return d.load(c,l.previewItemSlug?{previewItemSlug:l.previewItemSlug}:void 0).then(n=>{e&&t===f.current&&g({auction:n,error:null,loading:!1})},n=>{e&&t===f.current&&g(e=>({...e,error:n,loading:!1}))}).finally(n),()=>{e=!1}},[d,c,l.previewItemSlug,p,v]),{...h,client:d,refresh:_}}export{c as useLockerverseAuction,n as useLockerverseAuctions};
2
2
  //# sourceMappingURL=auction-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auction-data.js","names":[],"sources":["../src/use-lockerverse-auction.ts"],"sourcesContent":["import {\n type CreateLockerverseAuctionOptions,\n createLockerverseAuctionClient,\n type LockerverseAuction,\n type LockerverseAuctionClient,\n type LockerverseSdkError,\n} from \"@lockerverse/sdk/auctions\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useImmutableResourceIdentity } from \"./immutable-resource-identity.ts\";\nimport {\n type AuctionRefreshOptions,\n useAuctionReturnRefresh,\n} from \"./use-auction-return-refresh.ts\";\n\nexport type UseLockerverseAuctionOptions = AuctionRefreshOptions & {\n /** Initial server snapshot. The hook still refreshes on mount. */\n initialAuction?: LockerverseAuction;\n};\n\nexport type UseLockerverseAuctionResult = {\n client: LockerverseAuctionClient;\n /** Last successful snapshot, retained during refresh and refresh errors. */\n auction: LockerverseAuction | null;\n loading: boolean;\n error: LockerverseSdkError | null;\n refresh: () => void;\n};\n\n/** Load one auction by slug without requesting the community auction list. */\nexport function useLockerverseAuction(\n options: CreateLockerverseAuctionOptions,\n auctionSlug: string,\n refreshOptions: UseLockerverseAuctionOptions = {}\n): UseLockerverseAuctionResult {\n useImmutableResourceIdentity(\"auction\", {\n apiBaseUrl: options.apiBaseUrl,\n communitySlug: options.communitySlug,\n environment: options.environment,\n mediaBaseUrl: options.mediaBaseUrl,\n slug: auctionSlug,\n });\n const onErrorRef = useRef(options.onError);\n onErrorRef.current = options.onError;\n const [client] = useState(() =>\n createLockerverseAuctionClient({\n ...options,\n onError: (error) => onErrorRef.current?.(error),\n })\n );\n const generation = useRef(0);\n const [revision, setRevision] = useState(0);\n const [state, setState] = useState<\n Pick<UseLockerverseAuctionResult, \"auction\" | \"loading\" | \"error\">\n >(() => {\n const { initialAuction } = refreshOptions;\n if (initialAuction && initialAuction.slug !== auctionSlug) {\n throw new TypeError(\n \"Initial auction slug must match the requested auction.\"\n );\n }\n return { auction: initialAuction ?? null, error: null, loading: true };\n });\n\n const refresh = useCallback(() => {\n generation.current += 1;\n setState((current) => ({ ...current, error: null, loading: true }));\n setRevision((current) => current + 1);\n }, []);\n const startRead = useAuctionReturnRefresh(refresh, refreshOptions);\n\n useEffect(() => {\n let active = true;\n const requestGeneration = generation.current;\n const settleRead = startRead();\n client\n .load(auctionSlug)\n .then(\n (auction) => {\n if (active && requestGeneration === generation.current) {\n setState({ auction, error: null, loading: false });\n }\n },\n (error: LockerverseSdkError) => {\n if (active && requestGeneration === generation.current) {\n setState((current) => ({ ...current, error, loading: false }));\n }\n }\n )\n .finally(settleRead);\n return () => {\n active = false;\n };\n }, [client, auctionSlug, revision, startRead]);\n\n return { ...state, client, refresh };\n}\n"],"mappings":"sQA6BA,SAAgB,EACd,EACA,EACA,EAA+C,CAAC,EACnB,CAC7B,EAA6B,UAAW,CACtC,WAAY,EAAQ,WACpB,cAAe,EAAQ,cACvB,YAAa,EAAQ,YACrB,aAAc,EAAQ,aACtB,KAAM,CACR,CAAC,EACD,IAAM,EAAa,EAAO,EAAQ,OAAO,EACzC,EAAW,QAAU,EAAQ,QAC7B,GAAM,CAAC,GAAU,MACf,EAA+B,CAC7B,GAAG,EACH,QAAU,GAAU,EAAW,UAAU,CAAK,CAChD,CAAC,CACH,EACM,EAAa,EAAO,CAAC,EACrB,CAAC,EAAU,GAAe,EAAS,CAAC,EACpC,CAAC,EAAO,GAAY,MAElB,CACN,GAAM,CAAE,kBAAmB,EAC3B,GAAI,GAAkB,EAAe,OAAS,EAC5C,MAAU,UACR,wDACF,EAEF,MAAO,CAAE,QAAS,GAAkB,KAAM,MAAO,KAAM,QAAS,EAAK,CACvE,CAAC,EAEK,EAAU,MAAkB,CAChC,EAAW,SAAW,EACtB,EAAU,IAAa,CAAE,GAAG,EAAS,MAAO,KAAM,QAAS,EAAK,EAAE,EAClE,EAAa,GAAY,EAAU,CAAC,CACtC,EAAG,CAAC,CAAC,EACC,EAAY,EAAwB,EAAS,CAAc,EA0BjE,OAxBA,MAAgB,CACd,IAAI,EAAS,GACP,EAAoB,EAAW,QAC/B,EAAa,EAAU,EAgB7B,OAfA,EACG,KAAK,CAAW,CAAC,CACjB,KACE,GAAY,CACP,GAAU,IAAsB,EAAW,SAC7C,EAAS,CAAE,UAAS,MAAO,KAAM,QAAS,EAAM,CAAC,CAErD,EACC,GAA+B,CAC1B,GAAU,IAAsB,EAAW,SAC7C,EAAU,IAAa,CAAE,GAAG,EAAS,QAAO,QAAS,EAAM,EAAE,CAEjE,CACF,CAAC,CACA,QAAQ,CAAU,MACR,CACX,EAAS,EACX,CACF,EAAG,CAAC,EAAQ,EAAa,EAAU,CAAS,CAAC,EAEtC,CAAE,GAAG,EAAO,SAAQ,SAAQ,CACrC"}
1
+ {"version":3,"file":"auction-data.js","names":[],"sources":["../src/use-lockerverse-auction.ts"],"sourcesContent":["import {\n type CreateLockerverseAuctionOptions,\n createLockerverseAuctionClient,\n type LockerverseAuction,\n type LockerverseAuctionClient,\n type LockerverseSdkError,\n} from \"@lockerverse/sdk/auctions\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useImmutableResourceIdentity } from \"./immutable-resource-identity.ts\";\nimport {\n type AuctionRefreshOptions,\n useAuctionReturnRefresh,\n} from \"./use-auction-return-refresh.ts\";\n\nexport type UseLockerverseAuctionOptions = AuctionRefreshOptions & {\n /** Initial server snapshot. The hook still refreshes on mount. */\n initialAuction?: LockerverseAuction;\n /** Include one unlisted item when refreshing its direct item page. */\n previewItemSlug?: string;\n};\n\nexport type UseLockerverseAuctionResult = {\n client: LockerverseAuctionClient;\n /** Last successful snapshot, retained during refresh and refresh errors. */\n auction: LockerverseAuction | null;\n loading: boolean;\n error: LockerverseSdkError | null;\n refresh: () => void;\n};\n\n/** Load one auction by slug without requesting the community auction list. */\nexport function useLockerverseAuction(\n options: CreateLockerverseAuctionOptions,\n auctionSlug: string,\n refreshOptions: UseLockerverseAuctionOptions = {}\n): UseLockerverseAuctionResult {\n useImmutableResourceIdentity(\"auction\", {\n apiBaseUrl: options.apiBaseUrl,\n communitySlug: options.communitySlug,\n environment: options.environment,\n mediaBaseUrl: options.mediaBaseUrl,\n previewItemSlug: refreshOptions.previewItemSlug,\n slug: auctionSlug,\n });\n const onErrorRef = useRef(options.onError);\n onErrorRef.current = options.onError;\n const [client] = useState(() =>\n createLockerverseAuctionClient({\n ...options,\n onError: (error) => onErrorRef.current?.(error),\n })\n );\n const generation = useRef(0);\n const [revision, setRevision] = useState(0);\n const [state, setState] = useState<\n Pick<UseLockerverseAuctionResult, \"auction\" | \"loading\" | \"error\">\n >(() => {\n const { initialAuction } = refreshOptions;\n if (initialAuction && initialAuction.slug !== auctionSlug) {\n throw new TypeError(\n \"Initial auction slug must match the requested auction.\"\n );\n }\n return { auction: initialAuction ?? null, error: null, loading: true };\n });\n\n const refresh = useCallback(() => {\n generation.current += 1;\n setState((current) => ({ ...current, error: null, loading: true }));\n setRevision((current) => current + 1);\n }, []);\n const startRead = useAuctionReturnRefresh(refresh, refreshOptions);\n\n useEffect(() => {\n let active = true;\n const requestGeneration = generation.current;\n const settleRead = startRead();\n client\n .load(\n auctionSlug,\n refreshOptions.previewItemSlug\n ? { previewItemSlug: refreshOptions.previewItemSlug }\n : undefined\n )\n .then(\n (auction) => {\n if (active && requestGeneration === generation.current) {\n setState({ auction, error: null, loading: false });\n }\n },\n (error: LockerverseSdkError) => {\n if (active && requestGeneration === generation.current) {\n setState((current) => ({ ...current, error, loading: false }));\n }\n }\n )\n .finally(settleRead);\n return () => {\n active = false;\n };\n }, [\n client,\n auctionSlug,\n refreshOptions.previewItemSlug,\n revision,\n startRead,\n ]);\n\n return { ...state, client, refresh };\n}\n"],"mappings":"sQA+BA,SAAgB,EACd,EACA,EACA,EAA+C,CAAC,EACnB,CAC7B,EAA6B,UAAW,CACtC,WAAY,EAAQ,WACpB,cAAe,EAAQ,cACvB,YAAa,EAAQ,YACrB,aAAc,EAAQ,aACtB,gBAAiB,EAAe,gBAChC,KAAM,CACR,CAAC,EACD,IAAM,EAAa,EAAO,EAAQ,OAAO,EACzC,EAAW,QAAU,EAAQ,QAC7B,GAAM,CAAC,GAAU,MACf,EAA+B,CAC7B,GAAG,EACH,QAAU,GAAU,EAAW,UAAU,CAAK,CAChD,CAAC,CACH,EACM,EAAa,EAAO,CAAC,EACrB,CAAC,EAAU,GAAe,EAAS,CAAC,EACpC,CAAC,EAAO,GAAY,MAElB,CACN,GAAM,CAAE,kBAAmB,EAC3B,GAAI,GAAkB,EAAe,OAAS,EAC5C,MAAU,UACR,wDACF,EAEF,MAAO,CAAE,QAAS,GAAkB,KAAM,MAAO,KAAM,QAAS,EAAK,CACvE,CAAC,EAEK,EAAU,MAAkB,CAChC,EAAW,SAAW,EACtB,EAAU,IAAa,CAAE,GAAG,EAAS,MAAO,KAAM,QAAS,EAAK,EAAE,EAClE,EAAa,GAAY,EAAU,CAAC,CACtC,EAAG,CAAC,CAAC,EACC,EAAY,EAAwB,EAAS,CAAc,EAqCjE,OAnCA,MAAgB,CACd,IAAI,EAAS,GACP,EAAoB,EAAW,QAC/B,EAAa,EAAU,EAqB7B,OApBA,EACG,KACC,EACA,EAAe,gBACX,CAAE,gBAAiB,EAAe,eAAgB,EAClD,IAAA,EACN,CAAC,CACA,KACE,GAAY,CACP,GAAU,IAAsB,EAAW,SAC7C,EAAS,CAAE,UAAS,MAAO,KAAM,QAAS,EAAM,CAAC,CAErD,EACC,GAA+B,CAC1B,GAAU,IAAsB,EAAW,SAC7C,EAAU,IAAa,CAAE,GAAG,EAAS,QAAO,QAAS,EAAM,EAAE,CAEjE,CACF,CAAC,CACA,QAAQ,CAAU,MACR,CACX,EAAS,EACX,CACF,EAAG,CACD,EACA,EACA,EAAe,gBACf,EACA,CACF,CAAC,EAEM,CAAE,GAAG,EAAO,SAAQ,SAAQ,CACrC"}
@@ -1,2 +1,2 @@
1
- import{useRef as e}from"react";function t(e,t){return e.apiBaseUrl===t.apiBaseUrl&&e.communitySlug===t.communitySlug&&e.mediaBaseUrl===t.mediaBaseUrl&&e.environment===t.environment&&e.slug===t.slug}function n(n,r){if(!t(e(r).current,r))throw TypeError(`Lockerverse ${n} identity cannot change after initialization. Remount with a new React key.`)}export{n as t};
1
+ import{useRef as e}from"react";function t(e,t){return e.apiBaseUrl===t.apiBaseUrl&&e.communitySlug===t.communitySlug&&e.mediaBaseUrl===t.mediaBaseUrl&&e.environment===t.environment&&e.slug===t.slug&&e.previewItemSlug===t.previewItemSlug}function n(n,r){if(!t(e(r).current,r))throw TypeError(`Lockerverse ${n} identity cannot change after initialization. Remount with a new React key.`)}export{n as t};
2
2
  //# sourceMappingURL=immutable-resource-identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"immutable-resource-identity.js","names":[],"sources":["../src/immutable-resource-identity.ts"],"sourcesContent":["import { useRef } from \"react\";\n\ntype LockerverseResourceIdentity = {\n apiBaseUrl: string | undefined;\n communitySlug: string;\n mediaBaseUrl?: string | undefined;\n environment: string | undefined;\n slug: string;\n};\n\nfunction hasSameIdentity(\n initial: LockerverseResourceIdentity,\n current: LockerverseResourceIdentity\n) {\n return (\n initial.apiBaseUrl === current.apiBaseUrl &&\n initial.communitySlug === current.communitySlug &&\n initial.mediaBaseUrl === current.mediaBaseUrl &&\n initial.environment === current.environment &&\n initial.slug === current.slug\n );\n}\n\nexport function useImmutableResourceIdentity(\n resource:\n | \"payment widget\"\n | \"signup\"\n | \"auctions\"\n | \"auction\"\n | \"public events\",\n identity: LockerverseResourceIdentity\n) {\n const initial = useRef(identity);\n if (!hasSameIdentity(initial.current, identity)) {\n throw new TypeError(\n `Lockerverse ${resource} identity cannot change after initialization. Remount with a new React key.`\n );\n }\n}\n"],"mappings":"+BAUA,SAAS,EACP,EACA,EACA,CACA,OACE,EAAQ,aAAe,EAAQ,YAC/B,EAAQ,gBAAkB,EAAQ,eAClC,EAAQ,eAAiB,EAAQ,cACjC,EAAQ,cAAgB,EAAQ,aAChC,EAAQ,OAAS,EAAQ,IAE7B,CAEA,SAAgB,EACd,EAMA,EACA,CAEA,GAAI,CAAC,EADW,EAAO,CACI,CAAC,CAAC,QAAS,CAAQ,EAC5C,MAAU,UACR,eAAe,EAAS,4EAC1B,CAEJ"}
1
+ {"version":3,"file":"immutable-resource-identity.js","names":[],"sources":["../src/immutable-resource-identity.ts"],"sourcesContent":["import { useRef } from \"react\";\n\ntype LockerverseResourceIdentity = {\n apiBaseUrl: string | undefined;\n communitySlug: string;\n mediaBaseUrl?: string | undefined;\n environment: string | undefined;\n slug: string;\n previewItemSlug?: string | undefined;\n};\n\nfunction hasSameIdentity(\n initial: LockerverseResourceIdentity,\n current: LockerverseResourceIdentity\n) {\n return (\n initial.apiBaseUrl === current.apiBaseUrl &&\n initial.communitySlug === current.communitySlug &&\n initial.mediaBaseUrl === current.mediaBaseUrl &&\n initial.environment === current.environment &&\n initial.slug === current.slug &&\n initial.previewItemSlug === current.previewItemSlug\n );\n}\n\nexport function useImmutableResourceIdentity(\n resource:\n | \"payment widget\"\n | \"signup\"\n | \"auctions\"\n | \"auction\"\n | \"public events\",\n identity: LockerverseResourceIdentity\n) {\n const initial = useRef(identity);\n if (!hasSameIdentity(initial.current, identity)) {\n throw new TypeError(\n `Lockerverse ${resource} identity cannot change after initialization. Remount with a new React key.`\n );\n }\n}\n"],"mappings":"+BAWA,SAAS,EACP,EACA,EACA,CACA,OACE,EAAQ,aAAe,EAAQ,YAC/B,EAAQ,gBAAkB,EAAQ,eAClC,EAAQ,eAAiB,EAAQ,cACjC,EAAQ,cAAgB,EAAQ,aAChC,EAAQ,OAAS,EAAQ,MACzB,EAAQ,kBAAoB,EAAQ,eAExC,CAEA,SAAgB,EACd,EAMA,EACA,CAEA,GAAI,CAAC,EADW,EAAO,CACI,CAAC,CAAC,QAAS,CAAQ,EAC5C,MAAU,UACR,eAAe,EAAS,4EAC1B,CAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lockerverse/react",
3
- "version": "0.2.138-dev.1",
3
+ "version": "0.2.140-dev.1",
4
4
  "description": "Tree-shakable React payment and signup UI for Lockerverse",
5
5
  "repository": {
6
6
  "type": "git",
@@ -127,7 +127,7 @@
127
127
  "embla-carousel-react": "8.6.0",
128
128
  "lucide-react": "0.536.0",
129
129
  "valibot": "1.4.2",
130
- "@lockerverse/sdk": "0.2.138-dev.1"
130
+ "@lockerverse/sdk": "0.2.140-dev.1"
131
131
  },
132
132
  "devDependencies": {
133
133
  "@size-limit/file": "13.0.3",