@tirth_jasoliya/ui 1.0.5 → 1.0.7
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/components/core/error.cjs +3 -0
- package/dist/components/core/error.cjs.map +1 -0
- package/dist/components/core/error.d.cts +5 -0
- package/dist/components/core/error.d.ts +5 -0
- package/dist/components/core/error.js +3 -0
- package/dist/components/core/error.js.map +1 -0
- package/dist/components/core/event-success.cjs +3 -0
- package/dist/components/core/event-success.cjs.map +1 -0
- package/dist/components/core/event-success.d.cts +5 -0
- package/dist/components/core/event-success.d.ts +5 -0
- package/dist/components/core/event-success.js +3 -0
- package/dist/components/core/event-success.js.map +1 -0
- package/dist/components/core/index.cjs +3 -0
- package/dist/components/core/index.cjs.map +1 -0
- package/dist/components/core/index.d.cts +7 -0
- package/dist/components/core/index.d.ts +7 -0
- package/dist/components/core/index.js +3 -0
- package/dist/components/core/index.js.map +1 -0
- package/dist/components/core/loader.cjs +3 -0
- package/dist/components/core/loader.cjs.map +1 -0
- package/dist/components/core/loader.d.cts +5 -0
- package/dist/components/core/loader.d.ts +5 -0
- package/dist/components/core/loader.js +3 -0
- package/dist/components/core/loader.js.map +1 -0
- package/dist/components/core/notfound.cjs +3 -0
- package/dist/components/core/notfound.cjs.map +1 -0
- package/dist/components/core/notfound.d.cts +5 -0
- package/dist/components/core/notfound.d.ts +5 -0
- package/dist/components/core/notfound.js +3 -0
- package/dist/components/core/notfound.js.map +1 -0
- package/dist/components/core/offline-content.cjs +3 -0
- package/dist/components/core/offline-content.cjs.map +1 -0
- package/dist/components/core/offline-content.d.cts +5 -0
- package/dist/components/core/offline-content.d.ts +5 -0
- package/dist/components/core/offline-content.js +3 -0
- package/dist/components/core/offline-content.js.map +1 -0
- package/dist/components/core/unauthorized.cjs +3 -0
- package/dist/components/core/unauthorized.cjs.map +1 -0
- package/dist/components/core/unauthorized.d.cts +5 -0
- package/dist/components/core/unauthorized.d.ts +5 -0
- package/dist/components/core/unauthorized.js +3 -0
- package/dist/components/core/unauthorized.js.map +1 -0
- package/dist/components/data/data-table/data-table-action-bar.cjs +3 -0
- package/dist/components/data/data-table/data-table-action-bar.cjs.map +1 -0
- package/dist/components/data/data-table/data-table-action-bar.d.cts +26 -0
- package/dist/components/data/data-table/data-table-action-bar.d.ts +26 -0
- package/dist/components/data/data-table/data-table-action-bar.js +3 -0
- package/dist/components/data/data-table/data-table-action-bar.js.map +1 -0
- package/dist/components/data/data-table/data-table-column-header.cjs +3 -0
- package/dist/components/data/data-table/data-table-column-header.cjs.map +1 -0
- package/dist/components/data/data-table/data-table-column-header.d.cts +11 -0
- package/dist/components/data/data-table/data-table-column-header.d.ts +11 -0
- package/dist/components/data/data-table/data-table-column-header.js +3 -0
- package/dist/components/data/data-table/data-table-column-header.js.map +1 -0
- package/dist/components/data/data-table/data-table-faceted-filter.cjs +3 -0
- package/dist/components/data/data-table/data-table-faceted-filter.cjs.map +1 -0
- package/dist/components/data/data-table/data-table-faceted-filter.d.cts +18 -0
- package/dist/components/data/data-table/data-table-faceted-filter.d.ts +18 -0
- package/dist/components/data/data-table/data-table-faceted-filter.js +3 -0
- package/dist/components/data/data-table/data-table-faceted-filter.js.map +1 -0
- package/dist/components/data/data-table/data-table-pagination.cjs +3 -0
- package/dist/components/data/data-table/data-table-pagination.cjs.map +1 -0
- package/dist/components/data/data-table/data-table-pagination.d.cts +12 -0
- package/dist/components/data/data-table/data-table-pagination.d.ts +12 -0
- package/dist/components/data/data-table/data-table-pagination.js +3 -0
- package/dist/components/data/data-table/data-table-pagination.js.map +1 -0
- package/dist/components/data/data-table/data-table-toolbar.cjs +3 -0
- package/dist/components/data/data-table/data-table-toolbar.cjs.map +1 -0
- package/dist/components/data/data-table/data-table-toolbar.d.cts +23 -0
- package/dist/components/data/data-table/data-table-toolbar.d.ts +23 -0
- package/dist/components/data/data-table/data-table-toolbar.js +3 -0
- package/dist/components/data/data-table/data-table-toolbar.js.map +1 -0
- package/dist/components/data/data-table/data-table-types.cjs +3 -0
- package/dist/components/data/data-table/data-table-types.cjs.map +1 -0
- package/dist/components/data/data-table/data-table-types.d.cts +69 -0
- package/dist/components/data/data-table/data-table-types.d.ts +69 -0
- package/dist/components/data/data-table/data-table-types.js +2 -0
- package/dist/components/data/data-table/data-table-types.js.map +1 -0
- package/dist/components/data/data-table/data-table-view-options.cjs +3 -0
- package/dist/components/data/data-table/data-table-view-options.cjs.map +1 -0
- package/dist/components/data/data-table/data-table-view-options.d.cts +9 -0
- package/dist/components/data/data-table/data-table-view-options.d.ts +9 -0
- package/dist/components/data/data-table/data-table-view-options.js +3 -0
- package/dist/components/data/data-table/data-table-view-options.js.map +1 -0
- package/dist/components/data/data-table/data-table.cjs +3 -0
- package/dist/components/data/data-table/data-table.cjs.map +1 -0
- package/dist/components/data/data-table/data-table.d.cts +8 -0
- package/dist/components/data/data-table/data-table.d.ts +8 -0
- package/dist/components/data/data-table/data-table.js +3 -0
- package/dist/components/data/data-table/data-table.js.map +1 -0
- package/dist/components/data/data-table/index.cjs +3 -0
- package/dist/components/data/data-table/index.cjs.map +1 -0
- package/dist/components/data/data-table/index.d.cts +16 -0
- package/dist/components/data/data-table/index.d.ts +16 -0
- package/dist/components/data/data-table/index.js +3 -0
- package/dist/components/data/data-table/index.js.map +1 -0
- package/dist/components/data/data-template/data-template-action-bar.cjs +3 -0
- package/dist/components/data/data-template/data-template-action-bar.cjs.map +1 -0
- package/dist/components/data/data-template/data-template-action-bar.d.cts +14 -0
- package/dist/components/data/data-template/data-template-action-bar.d.ts +14 -0
- package/dist/components/data/data-template/data-template-action-bar.js +3 -0
- package/dist/components/data/data-template/data-template-action-bar.js.map +1 -0
- package/dist/components/data/data-template/data-template-pagination.cjs +3 -0
- package/dist/components/data/data-template/data-template-pagination.cjs.map +1 -0
- package/dist/components/data/data-template/data-template-pagination.d.cts +17 -0
- package/dist/components/data/data-template/data-template-pagination.d.ts +17 -0
- package/dist/components/data/data-template/data-template-pagination.js +3 -0
- package/dist/components/data/data-template/data-template-pagination.js.map +1 -0
- package/dist/components/data/data-template/data-template-toolbar.cjs +3 -0
- package/dist/components/data/data-template/data-template-toolbar.cjs.map +1 -0
- package/dist/components/data/data-template/data-template-toolbar.d.cts +27 -0
- package/dist/components/data/data-template/data-template-toolbar.d.ts +27 -0
- package/dist/components/data/data-template/data-template-toolbar.js +3 -0
- package/dist/components/data/data-template/data-template-toolbar.js.map +1 -0
- package/dist/components/data/data-template/data-template-types.cjs +3 -0
- package/dist/components/data/data-template/data-template-types.cjs.map +1 -0
- package/dist/components/data/data-template/data-template-types.d.cts +107 -0
- package/dist/components/data/data-template/data-template-types.d.ts +107 -0
- package/dist/components/data/data-template/data-template-types.js +2 -0
- package/dist/components/data/data-template/data-template-types.js.map +1 -0
- package/dist/components/data/data-template/data-template.cjs +3 -0
- package/dist/components/data/data-template/data-template.cjs.map +1 -0
- package/dist/components/data/data-template/data-template.d.cts +8 -0
- package/dist/components/data/data-template/data-template.d.ts +8 -0
- package/dist/components/data/data-template/data-template.js +3 -0
- package/dist/components/data/data-template/data-template.js.map +1 -0
- package/dist/components/data/data-template/index.cjs +3 -0
- package/dist/components/data/data-template/index.cjs.map +1 -0
- package/dist/components/data/data-template/index.d.cts +8 -0
- package/dist/components/data/data-template/index.d.ts +8 -0
- package/dist/components/data/data-template/index.js +3 -0
- package/dist/components/data/data-template/index.js.map +1 -0
- package/dist/components/general.cjs +3 -0
- package/dist/components/general.cjs.map +1 -0
- package/dist/components/general.d.cts +51 -0
- package/dist/components/general.d.ts +51 -0
- package/dist/components/general.js +3 -0
- package/dist/components/general.js.map +1 -0
- package/dist/components/layouts/app-container.cjs +3 -0
- package/dist/components/layouts/app-container.cjs.map +1 -0
- package/dist/components/layouts/app-container.d.cts +13 -0
- package/dist/components/layouts/app-container.d.ts +13 -0
- package/dist/components/layouts/app-container.js +3 -0
- package/dist/components/layouts/app-container.js.map +1 -0
- package/dist/components/layouts/app-content.cjs +3 -0
- package/dist/components/layouts/app-content.cjs.map +1 -0
- package/dist/components/layouts/app-content.d.cts +45 -0
- package/dist/components/layouts/app-content.d.ts +45 -0
- package/dist/components/layouts/app-content.js +3 -0
- package/dist/components/layouts/app-content.js.map +1 -0
- package/dist/components/layouts/app-footer.cjs +3 -0
- package/dist/components/layouts/app-footer.cjs.map +1 -0
- package/dist/components/layouts/app-footer.d.cts +18 -0
- package/dist/components/layouts/app-footer.d.ts +18 -0
- package/dist/components/layouts/app-footer.js +3 -0
- package/dist/components/layouts/app-footer.js.map +1 -0
- package/dist/components/layouts/app-header.cjs +3 -0
- package/dist/components/layouts/app-header.cjs.map +1 -0
- package/dist/components/layouts/app-header.d.cts +19 -0
- package/dist/components/layouts/app-header.d.ts +19 -0
- package/dist/components/layouts/app-header.js +3 -0
- package/dist/components/layouts/app-header.js.map +1 -0
- package/dist/components/layouts/factories.cjs +3 -0
- package/dist/components/layouts/factories.cjs.map +1 -0
- package/dist/components/layouts/factories.d.cts +18 -0
- package/dist/components/layouts/factories.d.ts +18 -0
- package/dist/components/layouts/factories.js +3 -0
- package/dist/components/layouts/factories.js.map +1 -0
- package/dist/components/layouts/index.cjs +3 -0
- package/dist/components/layouts/index.cjs.map +1 -0
- package/dist/components/layouts/index.d.cts +8 -0
- package/dist/components/layouts/index.d.ts +8 -0
- package/dist/components/layouts/index.js +3 -0
- package/dist/components/layouts/index.js.map +1 -0
- package/dist/components/ui/badge.cjs +3 -0
- package/dist/components/ui/badge.cjs.map +1 -0
- package/dist/components/ui/badge.d.cts +13 -0
- package/dist/components/ui/badge.d.ts +13 -0
- package/dist/components/ui/badge.js +3 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/button.cjs +3 -0
- package/dist/components/ui/button.cjs.map +1 -0
- package/dist/components/ui/button.d.cts +14 -0
- package/dist/components/ui/button.d.ts +14 -0
- package/dist/components/ui/button.js +3 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.cjs +3 -0
- package/dist/components/ui/card.cjs.map +1 -0
- package/dist/components/ui/card.d.cts +12 -0
- package/dist/components/ui/card.d.ts +12 -0
- package/dist/components/ui/card.js +3 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/checkbox.cjs +3 -0
- package/dist/components/ui/checkbox.cjs.map +1 -0
- package/dist/components/ui/checkbox.d.cts +7 -0
- package/dist/components/ui/checkbox.d.ts +7 -0
- package/dist/components/ui/checkbox.js +3 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/command.cjs +3 -0
- package/dist/components/ui/command.cjs.map +1 -0
- package/dist/components/ui/command.d.cts +20 -0
- package/dist/components/ui/command.d.ts +20 -0
- package/dist/components/ui/command.js +3 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/dialog.cjs +3 -0
- package/dist/components/ui/dialog.cjs.map +1 -0
- package/dist/components/ui/dialog.d.cts +16 -0
- package/dist/components/ui/dialog.d.ts +16 -0
- package/dist/components/ui/dialog.js +3 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.cjs +3 -0
- package/dist/components/ui/dropdown-menu.cjs.map +1 -0
- package/dist/components/ui/dropdown-menu.d.cts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.js +3 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/input.cjs +3 -0
- package/dist/components/ui/input.cjs.map +1 -0
- package/dist/components/ui/input.d.cts +6 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.js +3 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/popover.cjs +3 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.d.cts +10 -0
- package/dist/components/ui/popover.d.ts +10 -0
- package/dist/components/ui/popover.js +3 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/select.cjs +3 -0
- package/dist/components/ui/select.cjs.map +1 -0
- package/dist/components/ui/select.d.cts +18 -0
- package/dist/components/ui/select.d.ts +18 -0
- package/dist/components/ui/select.js +3 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.cjs +3 -0
- package/dist/components/ui/separator.cjs.map +1 -0
- package/dist/components/ui/separator.d.cts +7 -0
- package/dist/components/ui/separator.d.ts +7 -0
- package/dist/components/ui/separator.js +3 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.cjs +3 -0
- package/dist/components/ui/sheet.cjs.map +1 -0
- package/dist/components/ui/sheet.d.cts +18 -0
- package/dist/components/ui/sheet.d.ts +18 -0
- package/dist/components/ui/sheet.js +3 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/table.cjs +3 -0
- package/dist/components/ui/table.cjs.map +1 -0
- package/dist/components/ui/table.d.cts +13 -0
- package/dist/components/ui/table.d.ts +13 -0
- package/dist/components/ui/table.js +3 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/toggle.cjs +3 -0
- package/dist/components/ui/toggle.cjs.map +1 -0
- package/dist/components/ui/toggle.d.cts +16 -0
- package/dist/components/ui/toggle.d.ts +16 -0
- package/dist/components/ui/toggle.js +3 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.cjs +3 -0
- package/dist/components/ui/tooltip.cjs.map +1 -0
- package/dist/components/ui/tooltip.d.cts +10 -0
- package/dist/components/ui/tooltip.d.ts +10 -0
- package/dist/components/ui/tooltip.js +3 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/context/app-meta/context.cjs +3 -0
- package/dist/context/app-meta/context.cjs.map +1 -0
- package/dist/context/app-meta/context.d.cts +18 -0
- package/dist/context/app-meta/context.d.ts +18 -0
- package/dist/context/app-meta/context.js +3 -0
- package/dist/context/app-meta/context.js.map +1 -0
- package/dist/context/app-meta/hooks.cjs +3 -0
- package/dist/context/app-meta/hooks.cjs.map +1 -0
- package/dist/context/app-meta/hooks.d.cts +10 -0
- package/dist/context/app-meta/hooks.d.ts +10 -0
- package/dist/context/app-meta/hooks.js +3 -0
- package/dist/context/app-meta/hooks.js.map +1 -0
- package/dist/context/app-meta/index.cjs +3 -0
- package/dist/context/app-meta/index.cjs.map +1 -0
- package/dist/context/app-meta/index.d.cts +5 -0
- package/dist/context/app-meta/index.d.ts +5 -0
- package/dist/context/app-meta/index.js +3 -0
- package/dist/context/app-meta/index.js.map +1 -0
- package/dist/context/app-meta/types.cjs +3 -0
- package/dist/context/app-meta/types.cjs.map +1 -0
- package/dist/context/app-meta/types.d.cts +48 -0
- package/dist/context/app-meta/types.d.ts +48 -0
- package/dist/context/app-meta/types.js +2 -0
- package/dist/context/app-meta/types.js.map +1 -0
- package/dist/context/index.cjs +3 -0
- package/dist/context/index.cjs.map +1 -0
- package/dist/context/index.d.cts +5 -0
- package/dist/context/index.d.ts +5 -0
- package/dist/context/index.js +3 -0
- package/dist/context/index.js.map +1 -0
- package/dist/index.cjs +2 -3490
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +29 -410
- package/dist/index.d.ts +29 -410
- package/dist/index.js +2 -3442
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.cjs +3 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +3 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles.css +2 -0
- package/package.json +72 -44
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":";yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAEA,IAAAI,EAAmC,iBAuB5B,SAASF,EAA8C,CAC5D,gBAAAG,CACF,EAEG,CACD,SAASC,EAAgBC,EAA0B,CACjD,GAAM,CAAE,QAAAC,EAAS,UAAAC,CAAU,EAAIJ,EAAgB,EAEzCK,KAAa,WAAQ,IAAM,CAC/B,GAAKH,EAAQ,WACb,MAAO,CACL,GAAGA,EAAQ,WACX,QAASA,EAAQ,WAAW,OAC9B,CACF,EAAG,CAACA,EAAQ,YAAY,QAASA,EAAQ,YAAY,KAAMA,EAAQ,YAAY,SAAS,SAAS,CAAC,CAAC,EAE7FI,KAAW,WAAQ,IAAMJ,EAAQ,SAAU,CAAC,KAAK,UAAUA,EAAQ,QAAQ,CAAC,CAAC,EAE7EK,KAAgB,WAAQ,KAAO,CACnC,GAAGL,EACH,WAAAG,EACA,SAAAC,CACF,GAAI,CACFJ,EAAQ,MACRA,EAAQ,YACRA,EAAQ,YACRA,EAAQ,eACRA,EAAQ,iBACRA,EAAQ,WACRA,EAAQ,OACRG,EACAC,CACF,CAAC,KAED,aAAU,KACRH,EAAQI,CAAa,EACd,IAAMH,EAAU,GACtB,CAACG,EAAeJ,EAASC,CAAS,CAAC,CACxC,CAEA,MAAO,CAAE,gBAAAH,CAAgB,CAC3B","names":["hooks_exports","__export","createPageTemplateHook","__toCommonJS","import_react","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppMetaContextType, AppMeta } from './types.cjs';
|
|
2
|
+
import 'react';
|
|
3
|
+
|
|
4
|
+
declare function createPageTemplateHook<TRoute extends string>({ useTypedAppMeta, }: {
|
|
5
|
+
useTypedAppMeta: () => AppMetaContextType<TRoute>;
|
|
6
|
+
}): {
|
|
7
|
+
usePageTemplate: (options: AppMeta<TRoute>) => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { createPageTemplateHook };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppMetaContextType, AppMeta } from './types.js';
|
|
2
|
+
import 'react';
|
|
3
|
+
|
|
4
|
+
declare function createPageTemplateHook<TRoute extends string>({ useTypedAppMeta, }: {
|
|
5
|
+
useTypedAppMeta: () => AppMetaContextType<TRoute>;
|
|
6
|
+
}): {
|
|
7
|
+
usePageTemplate: (options: AppMeta<TRoute>) => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { createPageTemplateHook };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import{useEffect as p,useMemo as t}from"react";function d({useTypedAppMeta:A}){function i(e){let{setMeta:a,resetMeta:c}=A(),r=t(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),n=t(()=>e.metadata,[JSON.stringify(e.metadata)]),u=t(()=>({...e,backAction:r,metadata:n}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,r,n]);p(()=>(a(u),()=>c()),[u,a,c])}return{usePageTemplate:i}}export{d as createPageTemplateHook};
|
|
3
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":";AAEA,OAAS,aAAAA,EAAW,WAAAC,MAAe,QAuB5B,SAASC,EAA8C,CAC5D,gBAAAC,CACF,EAEG,CACD,SAASC,EAAgBC,EAA0B,CACjD,GAAM,CAAE,QAAAC,EAAS,UAAAC,CAAU,EAAIJ,EAAgB,EAEzCK,EAAaP,EAAQ,IAAM,CAC/B,GAAKI,EAAQ,WACb,MAAO,CACL,GAAGA,EAAQ,WACX,QAASA,EAAQ,WAAW,OAC9B,CACF,EAAG,CAACA,EAAQ,YAAY,QAASA,EAAQ,YAAY,KAAMA,EAAQ,YAAY,SAAS,SAAS,CAAC,CAAC,EAE7FI,EAAWR,EAAQ,IAAMI,EAAQ,SAAU,CAAC,KAAK,UAAUA,EAAQ,QAAQ,CAAC,CAAC,EAE7EK,EAAgBT,EAAQ,KAAO,CACnC,GAAGI,EACH,WAAAG,EACA,SAAAC,CACF,GAAI,CACFJ,EAAQ,MACRA,EAAQ,YACRA,EAAQ,YACRA,EAAQ,eACRA,EAAQ,iBACRA,EAAQ,WACRA,EAAQ,OACRG,EACAC,CACF,CAAC,EAEDT,EAAU,KACRM,EAAQI,CAAa,EACd,IAAMH,EAAU,GACtB,CAACG,EAAeJ,EAASC,CAAS,CAAC,CACxC,CAEA,MAAO,CAAE,gBAAAH,CAAgB,CAC3B","names":["useEffect","useMemo","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
"use strict";var A=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var g=(t,n)=>{for(var e in n)A(t,e,{get:n[e],enumerable:!0})},h=(t,n,e,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of x(n))!C.call(t,r)&&r!==e&&A(t,r,{get:()=>n[r],enumerable:!(p=l(n,r))||p.enumerable});return t};var k=t=>h(A({},"__esModule",{value:!0}),t);var O={};g(O,{AppMetaProvider:()=>P,createPageTemplateHook:()=>N,createTypedAppMetaContext:()=>S,useAppMeta:()=>R});module.exports=k(O);var a=require("react"),M=require("react/jsx-runtime"),f=(0,a.createContext)(void 0),P=({children:t})=>{let[n,e]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),p=(0,a.useCallback)(o=>{e(c=>Object.keys(o).some(s=>JSON.stringify(c[s])!==JSON.stringify(o[s]))?{...c,...o}:c)},[]),r=(0,a.useCallback)(()=>{e(o=>o.title===""&&o.description===""&&(o.breadcrumbs?.length??0)===0?o:{title:"",description:"",breadcrumbs:[]})},[]),i=(0,a.useMemo)(()=>({meta:n,setMeta:p,resetMeta:r}),[n,p,r]);return(0,M.jsx)(f.Provider,{value:i,children:t})},R=()=>{let t=(0,a.useContext)(f);if(!t)throw new Error("useAppMeta must be used within an AppMetaProvider");return t};function S(){let t=(0,a.createContext)(void 0);return{TypedAppMetaProvider:({children:p})=>{let[r,i]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),o=(0,a.useCallback)(s=>{i(d=>Object.keys(s).some(y=>{let b=d[y],T=s[y];return JSON.stringify(b)!==JSON.stringify(T)})?{...d,...s}:d)},[]),c=(0,a.useCallback)(()=>{i(s=>s.title===""&&s.description===""&&(s.breadcrumbs?.length??0)===0?s:{title:"",description:"",breadcrumbs:[]})},[]),m=(0,a.useMemo)(()=>({meta:r,setMeta:o,resetMeta:c}),[r,o,c]);return(0,M.jsx)(t.Provider,{value:m,children:p})},useTypedAppMeta:()=>{let p=(0,a.useContext)(t);if(!p)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return p},TypedAppMetaContext:t}}var u=require("react");function N({useTypedAppMeta:t}){function n(e){let{setMeta:p,resetMeta:r}=t(),i=(0,u.useMemo)(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),o=(0,u.useMemo)(()=>e.metadata,[JSON.stringify(e.metadata)]),c=(0,u.useMemo)(()=>({...e,backAction:i,metadata:o}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,i,o]);(0,u.useEffect)(()=>(p(c),()=>r()),[c,p,r])}return{usePageTemplate:n}}0&&(module.exports={AppMetaProvider,createPageTemplateHook,createTypedAppMetaContext,useAppMeta});
|
|
3
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/context/app-meta/index.ts","../../../src/context/app-meta/context.tsx","../../../src/context/app-meta/hooks.ts"],"sourcesContent":["export * from './context.jsx';\r\nexport * from './hooks.js';\r\nexport type { AppMeta, BreadcrumbItem } from './types.js';","import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["app_meta_exports","__export","AppMetaProvider","createPageTemplateHook","createTypedAppMetaContext","useAppMeta","__toCommonJS","import_react","import_jsx_runtime","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","import_react","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import{createContext as m,useContext as y,useState as f,useCallback as i,useMemo as b}from"react";import{jsx as l}from"react/jsx-runtime";var T=m(void 0),P=({children:n})=>{let[c,e]=f({title:"",description:"",breadcrumbs:[]}),r=i(t=>{e(o=>Object.keys(t).some(a=>JSON.stringify(o[a])!==JSON.stringify(t[a]))?{...o,...t}:o)},[]),p=i(()=>{e(t=>t.title===""&&t.description===""&&(t.breadcrumbs?.length??0)===0?t:{title:"",description:"",breadcrumbs:[]})},[]),s=b(()=>({meta:c,setMeta:r,resetMeta:p}),[c,r,p]);return l(T.Provider,{value:s,children:n})},R=()=>{let n=y(T);if(!n)throw new Error("useAppMeta must be used within an AppMetaProvider");return n};function S(){let n=m(void 0);return{TypedAppMetaProvider:({children:r})=>{let[p,s]=f({title:"",description:"",breadcrumbs:[]}),t=i(a=>{s(u=>Object.keys(a).some(M=>{let x=u[M],C=a[M];return JSON.stringify(x)!==JSON.stringify(C)})?{...u,...a}:u)},[]),o=i(()=>{s(a=>a.title===""&&a.description===""&&(a.breadcrumbs?.length??0)===0?a:{title:"",description:"",breadcrumbs:[]})},[]),A=b(()=>({meta:p,setMeta:t,resetMeta:o}),[p,t,o]);return l(n.Provider,{value:A,children:r})},useTypedAppMeta:()=>{let r=y(n);if(!r)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return r},TypedAppMetaContext:n}}import{useEffect as g,useMemo as d}from"react";function J({useTypedAppMeta:n}){function c(e){let{setMeta:r,resetMeta:p}=n(),s=d(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),t=d(()=>e.metadata,[JSON.stringify(e.metadata)]),o=d(()=>({...e,backAction:s,metadata:t}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,s,t]);g(()=>(r(o),()=>p()),[o,r,p])}return{usePageTemplate:c}}export{P as AppMetaProvider,J as createPageTemplateHook,S as createTypedAppMetaContext,R as useAppMeta};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/context/app-meta/context.tsx","../../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["createContext","useContext","useState","useCallback","useMemo","jsx","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","useEffect","useMemo","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
"use strict";var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of s(e))!c.call(t,o)&&o!==n&&i(t,o,{get:()=>e[o],enumerable:!(a=r(e,o))||a.enumerable});return t};var p=t=>d(i({},"__esModule",{value:!0}),t);var u={};module.exports=p(u);
|
|
3
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/context/app-meta/types.ts"],"sourcesContent":["import type { ReactNode } from 'react';\r\n\r\nexport type BreadcrumbItem<TRoute extends string = string> = {\r\n label: string;\r\n href?: TRoute;\r\n};\r\n\r\nexport type AppMeta<TRoute extends string = string> = {\r\n title: ReactNode;\r\n description?: string;\r\n breadcrumbs?: BreadcrumbItem<TRoute>[];\r\n primaryActions?: ReactNode;\r\n secondaryActions?: ReactNode;\r\n backAction?: {\r\n content?: ReactNode;\r\n onClick?: () => void;\r\n href?: TRoute;\r\n };\r\n pagination?: {\r\n hasNext: boolean;\r\n hasPrevious: boolean;\r\n onNext?: () => void;\r\n onPrevious?: () => void;\r\n nextLabel?: string;\r\n previousLabel?: string;\r\n };\r\n tabs?: {\r\n id: string;\r\n content: ReactNode;\r\n onClick?: () => void;\r\n href?: TRoute;\r\n isActive?: boolean;\r\n }[];\r\n metadata?: {\r\n label: string;\r\n value: ReactNode;\r\n }[];\r\n status?: {\r\n color: 'success' | 'warning' | 'critical' | 'info' | 'default';\r\n content: ReactNode;\r\n };\r\n};\r\n\r\nexport type AppMetaContextType<TRoute extends string = string> = {\r\n meta: AppMeta<TRoute>;\r\n setMeta: (meta: Partial<AppMeta<TRoute>>) => void;\r\n resetMeta: () => void;\r\n};"],"mappings":";+WAAA,IAAAA,EAAA,kBAAAC,EAAAD","names":["types_exports","__toCommonJS"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
type BreadcrumbItem<TRoute extends string = string> = {
|
|
4
|
+
label: string;
|
|
5
|
+
href?: TRoute;
|
|
6
|
+
};
|
|
7
|
+
type AppMeta<TRoute extends string = string> = {
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
description?: string;
|
|
10
|
+
breadcrumbs?: BreadcrumbItem<TRoute>[];
|
|
11
|
+
primaryActions?: ReactNode;
|
|
12
|
+
secondaryActions?: ReactNode;
|
|
13
|
+
backAction?: {
|
|
14
|
+
content?: ReactNode;
|
|
15
|
+
onClick?: () => void;
|
|
16
|
+
href?: TRoute;
|
|
17
|
+
};
|
|
18
|
+
pagination?: {
|
|
19
|
+
hasNext: boolean;
|
|
20
|
+
hasPrevious: boolean;
|
|
21
|
+
onNext?: () => void;
|
|
22
|
+
onPrevious?: () => void;
|
|
23
|
+
nextLabel?: string;
|
|
24
|
+
previousLabel?: string;
|
|
25
|
+
};
|
|
26
|
+
tabs?: {
|
|
27
|
+
id: string;
|
|
28
|
+
content: ReactNode;
|
|
29
|
+
onClick?: () => void;
|
|
30
|
+
href?: TRoute;
|
|
31
|
+
isActive?: boolean;
|
|
32
|
+
}[];
|
|
33
|
+
metadata?: {
|
|
34
|
+
label: string;
|
|
35
|
+
value: ReactNode;
|
|
36
|
+
}[];
|
|
37
|
+
status?: {
|
|
38
|
+
color: 'success' | 'warning' | 'critical' | 'info' | 'default';
|
|
39
|
+
content: ReactNode;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
type AppMetaContextType<TRoute extends string = string> = {
|
|
43
|
+
meta: AppMeta<TRoute>;
|
|
44
|
+
setMeta: (meta: Partial<AppMeta<TRoute>>) => void;
|
|
45
|
+
resetMeta: () => void;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export type { AppMeta, AppMetaContextType, BreadcrumbItem };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
type BreadcrumbItem<TRoute extends string = string> = {
|
|
4
|
+
label: string;
|
|
5
|
+
href?: TRoute;
|
|
6
|
+
};
|
|
7
|
+
type AppMeta<TRoute extends string = string> = {
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
description?: string;
|
|
10
|
+
breadcrumbs?: BreadcrumbItem<TRoute>[];
|
|
11
|
+
primaryActions?: ReactNode;
|
|
12
|
+
secondaryActions?: ReactNode;
|
|
13
|
+
backAction?: {
|
|
14
|
+
content?: ReactNode;
|
|
15
|
+
onClick?: () => void;
|
|
16
|
+
href?: TRoute;
|
|
17
|
+
};
|
|
18
|
+
pagination?: {
|
|
19
|
+
hasNext: boolean;
|
|
20
|
+
hasPrevious: boolean;
|
|
21
|
+
onNext?: () => void;
|
|
22
|
+
onPrevious?: () => void;
|
|
23
|
+
nextLabel?: string;
|
|
24
|
+
previousLabel?: string;
|
|
25
|
+
};
|
|
26
|
+
tabs?: {
|
|
27
|
+
id: string;
|
|
28
|
+
content: ReactNode;
|
|
29
|
+
onClick?: () => void;
|
|
30
|
+
href?: TRoute;
|
|
31
|
+
isActive?: boolean;
|
|
32
|
+
}[];
|
|
33
|
+
metadata?: {
|
|
34
|
+
label: string;
|
|
35
|
+
value: ReactNode;
|
|
36
|
+
}[];
|
|
37
|
+
status?: {
|
|
38
|
+
color: 'success' | 'warning' | 'critical' | 'info' | 'default';
|
|
39
|
+
content: ReactNode;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
type AppMetaContextType<TRoute extends string = string> = {
|
|
43
|
+
meta: AppMeta<TRoute>;
|
|
44
|
+
setMeta: (meta: Partial<AppMeta<TRoute>>) => void;
|
|
45
|
+
resetMeta: () => void;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export type { AppMeta, AppMetaContextType, BreadcrumbItem };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
"use strict";var A=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var g=(t,n)=>{for(var e in n)A(t,e,{get:n[e],enumerable:!0})},h=(t,n,e,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of l(n))!C.call(t,r)&&r!==e&&A(t,r,{get:()=>n[r],enumerable:!(p=x(n,r))||p.enumerable});return t};var k=t=>h(A({},"__esModule",{value:!0}),t);var O={};g(O,{AppMetaProvider:()=>P,createPageTemplateHook:()=>N,createTypedAppMetaContext:()=>S,useAppMeta:()=>R});module.exports=k(O);var a=require("react"),M=require("react/jsx-runtime"),f=(0,a.createContext)(void 0),P=({children:t})=>{let[n,e]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),p=(0,a.useCallback)(o=>{e(c=>Object.keys(o).some(s=>JSON.stringify(c[s])!==JSON.stringify(o[s]))?{...c,...o}:c)},[]),r=(0,a.useCallback)(()=>{e(o=>o.title===""&&o.description===""&&(o.breadcrumbs?.length??0)===0?o:{title:"",description:"",breadcrumbs:[]})},[]),i=(0,a.useMemo)(()=>({meta:n,setMeta:p,resetMeta:r}),[n,p,r]);return(0,M.jsx)(f.Provider,{value:i,children:t})},R=()=>{let t=(0,a.useContext)(f);if(!t)throw new Error("useAppMeta must be used within an AppMetaProvider");return t};function S(){let t=(0,a.createContext)(void 0);return{TypedAppMetaProvider:({children:p})=>{let[r,i]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),o=(0,a.useCallback)(s=>{i(d=>Object.keys(s).some(y=>{let b=d[y],T=s[y];return JSON.stringify(b)!==JSON.stringify(T)})?{...d,...s}:d)},[]),c=(0,a.useCallback)(()=>{i(s=>s.title===""&&s.description===""&&(s.breadcrumbs?.length??0)===0?s:{title:"",description:"",breadcrumbs:[]})},[]),m=(0,a.useMemo)(()=>({meta:r,setMeta:o,resetMeta:c}),[r,o,c]);return(0,M.jsx)(t.Provider,{value:m,children:p})},useTypedAppMeta:()=>{let p=(0,a.useContext)(t);if(!p)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return p},TypedAppMetaContext:t}}var u=require("react");function N({useTypedAppMeta:t}){function n(e){let{setMeta:p,resetMeta:r}=t(),i=(0,u.useMemo)(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),o=(0,u.useMemo)(()=>e.metadata,[JSON.stringify(e.metadata)]),c=(0,u.useMemo)(()=>({...e,backAction:i,metadata:o}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,i,o]);(0,u.useEffect)(()=>(p(c),()=>r()),[c,p,r])}return{usePageTemplate:n}}0&&(module.exports={AppMetaProvider,createPageTemplateHook,createTypedAppMetaContext,useAppMeta});
|
|
3
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/index.ts","../../src/context/app-meta/context.tsx","../../src/context/app-meta/hooks.ts"],"sourcesContent":["export * from './app-meta/index.js';","import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["context_exports","__export","AppMetaProvider","createPageTemplateHook","createTypedAppMetaContext","useAppMeta","__toCommonJS","import_react","import_jsx_runtime","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","import_react","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { AppMetaProvider, createTypedAppMetaContext, useAppMeta } from './app-meta/context.cjs';
|
|
2
|
+
export { createPageTemplateHook } from './app-meta/hooks.cjs';
|
|
3
|
+
export { AppMeta, BreadcrumbItem } from './app-meta/types.cjs';
|
|
4
|
+
import 'react';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { AppMetaProvider, createTypedAppMetaContext, useAppMeta } from './app-meta/context.js';
|
|
2
|
+
export { createPageTemplateHook } from './app-meta/hooks.js';
|
|
3
|
+
export { AppMeta, BreadcrumbItem } from './app-meta/types.js';
|
|
4
|
+
import 'react';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import{createContext as m,useContext as y,useState as f,useCallback as i,useMemo as b}from"react";import{jsx as x}from"react/jsx-runtime";var T=m(void 0),P=({children:n})=>{let[c,e]=f({title:"",description:"",breadcrumbs:[]}),r=i(t=>{e(o=>Object.keys(t).some(a=>JSON.stringify(o[a])!==JSON.stringify(t[a]))?{...o,...t}:o)},[]),p=i(()=>{e(t=>t.title===""&&t.description===""&&(t.breadcrumbs?.length??0)===0?t:{title:"",description:"",breadcrumbs:[]})},[]),s=b(()=>({meta:c,setMeta:r,resetMeta:p}),[c,r,p]);return x(T.Provider,{value:s,children:n})},R=()=>{let n=y(T);if(!n)throw new Error("useAppMeta must be used within an AppMetaProvider");return n};function S(){let n=m(void 0);return{TypedAppMetaProvider:({children:r})=>{let[p,s]=f({title:"",description:"",breadcrumbs:[]}),t=i(a=>{s(u=>Object.keys(a).some(M=>{let l=u[M],C=a[M];return JSON.stringify(l)!==JSON.stringify(C)})?{...u,...a}:u)},[]),o=i(()=>{s(a=>a.title===""&&a.description===""&&(a.breadcrumbs?.length??0)===0?a:{title:"",description:"",breadcrumbs:[]})},[]),A=b(()=>({meta:p,setMeta:t,resetMeta:o}),[p,t,o]);return x(n.Provider,{value:A,children:r})},useTypedAppMeta:()=>{let r=y(n);if(!r)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return r},TypedAppMetaContext:n}}import{useEffect as g,useMemo as d}from"react";function J({useTypedAppMeta:n}){function c(e){let{setMeta:r,resetMeta:p}=n(),s=d(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),t=d(()=>e.metadata,[JSON.stringify(e.metadata)]),o=d(()=>({...e,backAction:s,metadata:t}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,s,t]);g(()=>(r(o),()=>p()),[o,r,p])}return{usePageTemplate:c}}export{P as AppMetaProvider,J as createPageTemplateHook,S as createTypedAppMetaContext,R as useAppMeta};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/app-meta/context.tsx","../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["createContext","useContext","useState","useCallback","useMemo","jsx","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","useEffect","useMemo","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
|