@lssm/lib.presentation-runtime-react-native 11.0.0 → 12.0.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.
- package/README.md +11 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/package.json +7 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -108,5 +108,4 @@ declare function useListCoordinator<TFilters extends Record<string, unknown>, TV
|
|
|
108
108
|
readonly clearAll: () => void;
|
|
109
109
|
};
|
|
110
110
|
//#endregion
|
|
111
|
-
export { UseListCoordinatorOpts, UsePresentationControllerOpts, useListCoordinator, usePresentationController };
|
|
112
|
-
//# sourceMappingURL=index.d.ts.map
|
|
111
|
+
export { UseListCoordinatorOpts, UsePresentationControllerOpts, useListCoordinator, usePresentationController };
|
package/dist/index.js
CHANGED
|
@@ -123,5 +123,4 @@ function useListCoordinator({ defaults, form: formOpts, toVariables, toChips, us
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
//#endregion
|
|
126
|
-
export { useListCoordinator, usePresentationController };
|
|
127
|
-
//# sourceMappingURL=index.js.map
|
|
126
|
+
export { useListCoordinator, usePresentationController };
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/lib.presentation-runtime-react-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
7
7
|
"types": "./dist/nativewind-env.d.ts",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"scripts": {
|
|
10
|
+
"publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
|
|
10
11
|
"build": "bun build:bundle && bun build:types",
|
|
11
12
|
"build:bundle": "tsdown",
|
|
12
13
|
"build:types": "tsc --noEmit -p tsconfig.json",
|
|
@@ -19,12 +20,12 @@
|
|
|
19
20
|
"react": "^19.2.0",
|
|
20
21
|
"react-native": "*",
|
|
21
22
|
"react-hook-form": "7.66.1",
|
|
22
|
-
"zod": "^4.1.
|
|
23
|
-
"@lssm/lib.presentation-runtime-core": "
|
|
23
|
+
"zod": "^4.1.13",
|
|
24
|
+
"@lssm/lib.presentation-runtime-core": "1.11.1"
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
|
26
|
-
"@lssm/lib.presentation-runtime-core": "
|
|
27
|
-
"@lssm/lib.ui-kit": "
|
|
27
|
+
"@lssm/lib.presentation-runtime-core": "1.11.1",
|
|
28
|
+
"@lssm/lib.ui-kit": "1.11.1"
|
|
28
29
|
},
|
|
29
30
|
"files": [
|
|
30
31
|
"dist",
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
"./*": "./*"
|
|
36
37
|
},
|
|
37
38
|
"publishConfig": {
|
|
39
|
+
"access": "public",
|
|
38
40
|
"exports": {
|
|
39
41
|
".": "./dist/index.js",
|
|
40
42
|
"./*": "./*"
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import * as React from 'react';\nimport type { DefaultValues, Resolver, UseFormReturn } from 'react-hook-form';\nimport { useForm } from '@lssm/lib.ui-kit/ui/form';\nimport type {\n ListFetcher,\n ListState,\n} from '@lssm/lib.presentation-runtime-core';\n\nexport interface UsePresentationControllerOpts<\n TFilters extends Record<string, unknown>,\n TVars,\n TItem,\n> {\n defaults: ListState<TFilters>;\n form: {\n defaultValues: DefaultValues<TFilters>;\n resolver?: Resolver<TFilters>;\n };\n toVariables: (input: ListState<TFilters>) => TVars;\n fetcher: ListFetcher<TVars, TItem>;\n toChips?: (\n filters: TFilters,\n setFilter: (\n key: keyof TFilters,\n value: TFilters[keyof TFilters] | null\n ) => void\n ) => { key: string; label: React.ReactNode; onRemove?: () => void }[];\n useUrlState: (args: { defaults: ListState<TFilters>; replace?: boolean }) => {\n state: ListState<TFilters>;\n setState: (next: Partial<ListState<TFilters>>) => void;\n setFilter: (\n key: keyof TFilters,\n value: TFilters[keyof TFilters] | null\n ) => void;\n clearFilters: () => void;\n };\n replace?: boolean;\n}\n\nexport function usePresentationController<\n TFilters extends Record<string, unknown>,\n TVars,\n TItem,\n>({\n defaults,\n form: formOpts,\n toVariables,\n fetcher,\n toChips,\n useUrlState,\n replace,\n}: UsePresentationControllerOpts<TFilters, TVars, TItem>) {\n const url = useUrlState({ defaults, replace });\n const form = useForm<TFilters>({\n defaultValues: formOpts.defaultValues,\n resolver: formOpts.resolver as any,\n } as any);\n\n React.useEffect(() => {\n form.reset({ ...(form.getValues() as any), ...(url.state.filters as any) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url.state.filters]);\n\n const submitFilters = form.handleSubmit((values) => {\n url.setState({ filters: values as TFilters, page: 1 });\n });\n\n const setSearch = React.useCallback(\n (q: string) => url.setState({ q, page: 1 }),\n [url]\n );\n const variables = React.useMemo(\n () => toVariables(url.state),\n [url.state, toVariables]\n );\n\n const [data, setData] = React.useState<TItem[]>([]);\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState<unknown>(null);\n const [totalItems, setTotalItems] = React.useState<number | undefined>(\n undefined\n );\n const [totalPages, setTotalPages] = React.useState<number | undefined>(\n undefined\n );\n\n const refetch = React.useCallback(async () => {\n setLoading(true);\n setError(null);\n try {\n const out = await fetcher(variables);\n setData(out.items);\n setTotalItems(out.totalItems);\n setTotalPages(out.totalPages);\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, [variables, fetcher]);\n\n React.useEffect(() => {\n void refetch();\n }, [refetch]);\n\n const chips = React.useMemo(\n () =>\n toChips\n ? toChips(\n (url.state.filters as TFilters) || ({} as any),\n url.setFilter as any\n )\n : [],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [url.state.filters, toChips]\n );\n\n const clearAll = React.useCallback(() => {\n form.reset(formOpts.defaultValues as TFilters);\n url.setState({ filters: {} as TFilters, page: 1 });\n }, [form, formOpts.defaultValues, url]);\n\n return {\n form: form as UseFormReturn<TFilters>,\n url,\n variables,\n data,\n loading,\n error,\n totalItems,\n totalPages,\n refetch,\n chips,\n setSearch,\n submitFilters,\n clearAll,\n } as const;\n}\n\nexport interface UseListCoordinatorOpts<\n TFilters extends Record<string, unknown>,\n TVars,\n> {\n defaults: ListState<TFilters>;\n form: {\n defaultValues: DefaultValues<TFilters>;\n resolver?: Resolver<TFilters>;\n };\n toVariables: (input: ListState<TFilters>) => TVars;\n toChips?: (\n filters: TFilters,\n setFilter: (\n key: keyof TFilters,\n value: TFilters[keyof TFilters] | null\n ) => void\n ) => { key: string; label: React.ReactNode; onRemove?: () => void }[];\n useUrlState: (args: { defaults: ListState<TFilters>; replace?: boolean }) => {\n state: ListState<TFilters>;\n setState: (next: Partial<ListState<TFilters>>) => void;\n setFilter: (\n key: keyof TFilters,\n value: TFilters[keyof TFilters] | null\n ) => void;\n clearFilters: () => void;\n };\n replace?: boolean;\n}\n\nexport function useListCoordinator<\n TFilters extends Record<string, unknown>,\n TVars,\n>({\n defaults,\n form: formOpts,\n toVariables,\n toChips,\n useUrlState,\n replace,\n}: UseListCoordinatorOpts<TFilters, TVars>) {\n const url = useUrlState({ defaults, replace });\n const form = useForm<TFilters>({\n defaultValues: formOpts.defaultValues,\n resolver: formOpts.resolver as any,\n } as any);\n\n React.useEffect(() => {\n form.reset({ ...(form.getValues() as any), ...(url.state.filters as any) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url.state.filters]);\n\n const submitFilters = form.handleSubmit((values) => {\n url.setState({ filters: values as TFilters, page: 1 });\n });\n\n const setSearch = React.useCallback(\n (q: string) => url.setState({ q, page: 1 }),\n [url]\n );\n const variables = React.useMemo(\n () => toVariables(url.state),\n [url.state, toVariables]\n );\n\n const chips = React.useMemo(\n () =>\n toChips\n ? toChips(\n (url.state.filters as TFilters) || ({} as any),\n url.setFilter as any\n )\n : [],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [url.state.filters, toChips]\n );\n\n const clearAll = React.useCallback(() => {\n form.reset(formOpts.defaultValues as TFilters);\n url.setState({ filters: {} as TFilters, page: 1 });\n }, [form, formOpts.defaultValues, url]);\n\n return {\n form: form as UseFormReturn<TFilters>,\n url,\n variables,\n chips,\n setSearch,\n submitFilters,\n clearAll,\n } as const;\n}\n"],"mappings":"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"}
|