@pattern-stack/frontend-patterns 0.2.0-alpha.19 → 0.2.0-alpha.20

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.ts CHANGED
@@ -22,5 +22,5 @@ export { useBreakpoint, useResponsiveValue, useMediaQuery, useMaxMediaQuery, use
22
22
  export { useOnlineStatus, type OnlineStatus } from "./atoms/hooks/useOnlineStatus";
23
23
  export { ConnectionStatus, type ConnectionStatusProps } from "./atoms/composed/ConnectionStatus";
24
24
  export { createEntityHooks, createStore, EntityStoreProvider, useStore, } from "./sync";
25
- export type { EntityHookConfig, EntityHooks, EntityApi, Page, ListQuery, ListParams, UseListOptions, UseGetOptions, UseListResult, UseGetResult, WhereClause, EntityQueryKeys, StoreConfig, Store, Resolvers, Lookups, } from "./sync";
25
+ export type { EntityHookConfig, EntityHooks, EntityApi, Page, ListQuery, ListParams, UseListOptions, UseGetOptions, UseListResult, UseGetResult, UseDataOptions, UseDataResult, LookupsEngine, SortSpec, WhereClause, EntityQueryKeys, StoreConfig, Store, EntityWithData, Resolvers, Lookups, } from "./sync";
26
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,0CAA0C,CAAC;AAClD,OAAO,aAAa,CAAC;AAErB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAClG,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,YAAY,EACV,MAAM,EACN,WAAW,EAAE,iCAAiC;AAC9C,aAAa,EACb,QAAQ,EACR,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,YAAY,GACb,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAGjG,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,QAAQ,GACT,MAAM,QAAQ,CAAC;AAChB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAW,EACX,KAAK,EACL,SAAS,EACT,OAAO,GACR,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,0CAA0C,CAAC;AAClD,OAAO,aAAa,CAAC;AAErB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAClG,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,YAAY,EACV,MAAM,EACN,WAAW,EAAE,iCAAiC;AAC9C,aAAa,EACb,QAAQ,EACR,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,YAAY,GACb,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAGjG,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,QAAQ,GACT,MAAM,QAAQ,CAAC;AAChB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,KAAK,EACL,cAAc,EACd,SAAS,EACT,OAAO,GACR,MAAM,QAAQ,CAAC"}
package/dist/index.es.js CHANGED
@@ -19297,7 +19297,8 @@ function createEntityHooks(config) {
19297
19297
  };
19298
19298
  }
19299
19299
  function createStore(config) {
19300
- const { entities, collections } = config;
19300
+ const { entities, collections, fields, lookups: lookupsEngine } = config;
19301
+ const defaultGetRowId = (row) => String(row.id);
19301
19302
  const resolve = {};
19302
19303
  for (const [name, collection] of Object.entries(collections)) {
19303
19304
  const singular = name.endsWith("ies") ? name.slice(0, -3) + "y" : name.endsWith("s") ? name.slice(0, -1) : name;
@@ -19327,8 +19328,75 @@ function createStore(config) {
19327
19328
  lookupCache = null;
19328
19329
  }
19329
19330
  };
19331
+ function makeUseData(entityName, entity) {
19332
+ const meta = fields ? fields[entityName] : void 0;
19333
+ return function useData(opts = {}) {
19334
+ const { pageSize } = opts;
19335
+ const list = entity.useList({ pageSize });
19336
+ useEffect(() => {
19337
+ if (lookupsEngine) {
19338
+ void lookupsEngine.hydrate().catch(() => {
19339
+ });
19340
+ }
19341
+ }, []);
19342
+ const hydratedLookups = lookupsEngine ? lookupsEngine.current : null;
19343
+ const result = useMemo(
19344
+ () => ({
19345
+ rows: list.data,
19346
+ isLoading: list.isLoading,
19347
+ isError: list.isError,
19348
+ error: list.error,
19349
+ refetch: list.refetch,
19350
+ page: list.page,
19351
+ pageCount: list.pageCount,
19352
+ total: list.total,
19353
+ pageSize: list.pageSize,
19354
+ setPage: list.setPage,
19355
+ next: list.next,
19356
+ prev: list.prev,
19357
+ hasNext: list.hasNext,
19358
+ hasPrev: list.hasPrev,
19359
+ getRowId: defaultGetRowId,
19360
+ meta,
19361
+ lookups: hydratedLookups,
19362
+ // Reserved (inert):
19363
+ sort: null,
19364
+ setSort: () => {
19365
+ },
19366
+ filter: null,
19367
+ setFilter: () => {
19368
+ }
19369
+ }),
19370
+ [
19371
+ list.data,
19372
+ list.isLoading,
19373
+ list.isError,
19374
+ list.error,
19375
+ list.refetch,
19376
+ list.page,
19377
+ list.pageCount,
19378
+ list.total,
19379
+ list.pageSize,
19380
+ list.setPage,
19381
+ list.next,
19382
+ list.prev,
19383
+ list.hasNext,
19384
+ list.hasPrev,
19385
+ hydratedLookups
19386
+ ]
19387
+ );
19388
+ return result;
19389
+ };
19390
+ }
19391
+ const augmentedEntities = {};
19392
+ for (const [name, entity] of Object.entries(entities)) {
19393
+ augmentedEntities[name] = {
19394
+ ...entity,
19395
+ useData: makeUseData(name, entity)
19396
+ };
19397
+ }
19330
19398
  return {
19331
- ...entities,
19399
+ ...augmentedEntities,
19332
19400
  collections,
19333
19401
  resolve,
19334
19402
  lookups