@headless-adminapp/app 0.0.17-alpha.28 → 0.0.17-alpha.32

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.
@@ -7,13 +7,13 @@ import { MetadataProviderProps } from '../metadata/MetadataProvider';
7
7
  import { RouteProviderProps } from '../route/RouteProvider';
8
8
  export interface LayoutProviderProps {
9
9
  routeProps: RouteProviderProps;
10
- queryClient: QueryClient;
11
- localeProps: LocaleProviderProps;
12
- dataService: IDataService;
10
+ queryClient?: QueryClient;
11
+ localeProps?: LocaleProviderProps;
12
+ dataService?: IDataService;
13
13
  fileService?: IFileService;
14
14
  authProps?: AuthProviderProps;
15
15
  authPlaceholder?: FC<AuthProviderPlaceholderProps>;
16
- metadataProps: MetadataProviderProps;
16
+ metadataProps?: MetadataProviderProps;
17
17
  containers: {
18
18
  DialogContainer: FC;
19
19
  ProgressIndicatorContainer: FC;
@@ -1,9 +1,19 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.LayoutProvider = void 0;
4
13
  const jsx_runtime_1 = require("react/jsx-runtime");
5
14
  const react_query_1 = require("@tanstack/react-query");
6
15
  const auth_1 = require("../auth");
16
+ const defaults_1 = require("../defaults");
7
17
  const dialog_1 = require("../dialog");
8
18
  const locale_1 = require("../locale");
9
19
  const metadata_1 = require("../metadata");
@@ -14,7 +24,31 @@ const toast_notification_1 = require("../toast-notification");
14
24
  const transport_1 = require("../transport");
15
25
  const context_1 = require("../transport/context");
16
26
  const AuthWrapper_1 = require("./AuthWrapper");
17
- const LayoutProvider = ({ authPlaceholder, authProps, dataService, fileService, localeProps, metadataProps, queryClient, routeProps, children, containers: { DialogContainer, ProgressIndicatorContainer, ToastNotificationContainer, }, }) => {
27
+ const dataServiceNotProvidedError = new Error('No data service provided');
28
+ const defaultDataService = {
29
+ createRecord: () => __awaiter(void 0, void 0, void 0, function* () {
30
+ throw dataServiceNotProvidedError;
31
+ }),
32
+ deleteRecord: () => __awaiter(void 0, void 0, void 0, function* () {
33
+ throw dataServiceNotProvidedError;
34
+ }),
35
+ customAction: () => __awaiter(void 0, void 0, void 0, function* () {
36
+ throw dataServiceNotProvidedError;
37
+ }),
38
+ retriveAggregate: () => __awaiter(void 0, void 0, void 0, function* () {
39
+ throw dataServiceNotProvidedError;
40
+ }),
41
+ retriveRecord: () => __awaiter(void 0, void 0, void 0, function* () {
42
+ throw dataServiceNotProvidedError;
43
+ }),
44
+ retriveRecords: () => __awaiter(void 0, void 0, void 0, function* () {
45
+ throw dataServiceNotProvidedError;
46
+ }),
47
+ updateRecord: () => __awaiter(void 0, void 0, void 0, function* () {
48
+ throw dataServiceNotProvidedError;
49
+ }),
50
+ };
51
+ const LayoutProvider = ({ authPlaceholder, authProps, dataService = defaultDataService, fileService, localeProps, metadataProps, queryClient = defaults_1.queryClient, routeProps, children, containers: { DialogContainer, ProgressIndicatorContainer, ToastNotificationContainer, }, }) => {
18
52
  return ((0, jsx_runtime_1.jsx)(route_1.RouteProvider, Object.assign({}, routeProps, { children: (0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(locale_1.LocaleProvider, Object.assign({}, localeProps, { children: (0, jsx_runtime_1.jsx)(metadata_1.MetadataProvider, Object.assign({}, metadataProps, { children: (0, jsx_runtime_1.jsx)(transport_1.DataServiceContext.Provider, { value: dataService, children: (0, jsx_runtime_1.jsx)(context_1.FileServiceContext.Provider, { value: fileService !== null && fileService !== void 0 ? fileService : context_1.noopFileService, children: (0, jsx_runtime_1.jsx)(dialog_1.DialogProvider, { children: (0, jsx_runtime_1.jsx)(progress_indicator_1.ProgressIndicatorProvider, { children: (0, jsx_runtime_1.jsxs)(toast_notification_1.ToastNotificationProvider, { children: [(0, jsx_runtime_1.jsx)(DialogContainer, {}), (0, jsx_runtime_1.jsx)(ProgressIndicatorContainer, {}), (0, jsx_runtime_1.jsx)(ToastNotificationContainer, {}), (0, jsx_runtime_1.jsx)(auth_1.AuthProvider, Object.assign({}, authProps, { children: (0, jsx_runtime_1.jsx)(AuthWrapper_1.AuthWrapper, { Placeholder: authPlaceholder, children: (0, jsx_runtime_1.jsx)(recordset_1.RecordSetProvider, { children: children }) }) }))] }) }) }) }) }) })) })) }) })));
19
53
  };
20
54
  exports.LayoutProvider = LayoutProvider;
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AuthProvider = void 0;
13
13
  const jsx_runtime_1 = require("react/jsx-runtime");
14
+ const react_query_1 = require("@tanstack/react-query");
14
15
  const react_1 = require("react");
15
16
  const context_1 = require("../mutable/context");
16
17
  const context_2 = require("./context");
@@ -24,10 +25,20 @@ const defaultSessionResolver = () => __awaiter(void 0, void 0, void 0, function*
24
25
  const AuthProvider = ({ sessionResolver = defaultSessionResolver, onUnauthenticated, children, }) => {
25
26
  const onUnauthenticatedRef = (0, react_1.useRef)(onUnauthenticated);
26
27
  onUnauthenticatedRef.current = onUnauthenticated;
28
+ const queryClient = (0, react_query_1.useQueryClient)();
27
29
  const onUnauthenticatedInternal = (0, react_1.useCallback)((reason) => {
28
30
  var _a;
29
31
  (_a = onUnauthenticatedRef.current) === null || _a === void 0 ? void 0 : _a.call(onUnauthenticatedRef, reason);
30
- }, []);
32
+ queryClient.clear();
33
+ queryClient.removeQueries({
34
+ queryKey: ['data'],
35
+ });
36
+ queryClient
37
+ .invalidateQueries({
38
+ queryKey: ['data'],
39
+ })
40
+ .catch(console.error);
41
+ }, [queryClient]);
31
42
  const contextValue = (0, context_1.useCreateContextStore)({
32
43
  loading: true,
33
44
  loadError: false,
package/defaults.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ export declare const queryClient: QueryClient;
package/defaults.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryClient = void 0;
4
+ const react_query_1 = require("@tanstack/react-query");
5
+ exports.queryClient = new react_query_1.QueryClient();
@@ -1,8 +1,8 @@
1
1
  import { Locale } from '@headless-adminapp/core/experience/locale';
2
2
  import { FC, PropsWithChildren } from 'react';
3
3
  export interface LocaleProviderProps {
4
- locale: string;
5
- timezone: string;
4
+ locale?: string;
5
+ timezone?: string;
6
6
  options?: {
7
7
  direction?: Locale['direction'];
8
8
  dateFormats?: Locale['dateFormats'];
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const locale_1 = require("@headless-adminapp/core/experience/locale");
6
6
  const react_1 = require("react");
7
7
  const context_1 = require("./context");
8
- const LocaleProvider = ({ children, locale, timezone, options, }) => {
8
+ const LocaleProvider = ({ children, locale = 'en-US', timezone = 'UTC', options, }) => {
9
9
  const localeState = (0, react_1.useMemo)(() => {
10
10
  return (0, locale_1.getLocale)(locale, timezone, options);
11
11
  }, [locale, timezone, options]);
@@ -1,8 +1,12 @@
1
- import { IClientAppStore, ISchemaExperienceStore, ISchemaStore } from '@headless-adminapp/core/store';
1
+ import { IClientAppStore, ISchemaExperienceStore, ISchemaStore, SchemaStore } from '@headless-adminapp/core/store';
2
2
  import { FC, PropsWithChildren } from 'react';
3
+ import { ClientAppStore, SchemaExperienceStore } from '../store';
3
4
  export interface MetadataProviderProps {
4
- schemaStore: ISchemaStore;
5
- experienceStore: ISchemaExperienceStore;
6
- appStore: IClientAppStore;
5
+ schemaStore?: ISchemaStore;
6
+ experienceStore?: ISchemaExperienceStore;
7
+ appStore?: IClientAppStore;
7
8
  }
9
+ export declare const defaultAppStore: ClientAppStore;
10
+ export declare const defaultSchemaStore: SchemaStore<import("@headless-adminapp/core/schema").SchemaAttributes>;
11
+ export declare const defaultExperienceStore: SchemaExperienceStore;
8
12
  export declare const MetadataProvider: FC<PropsWithChildren<MetadataProviderProps>>;
@@ -1,29 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MetadataProvider = void 0;
3
+ exports.MetadataProvider = exports.defaultExperienceStore = exports.defaultSchemaStore = exports.defaultAppStore = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const app_1 = require("@headless-adminapp/core/experience/app");
6
+ const store_1 = require("@headless-adminapp/core/store");
7
+ const icons_1 = require("@headless-adminapp/icons");
5
8
  const context_1 = require("../mutable/context");
9
+ const store_2 = require("../store");
6
10
  const context_2 = require("./context");
7
- const MetadataProvider = ({ children, experienceStore, schemaStore, appStore, }) => {
11
+ exports.defaultAppStore = new store_2.ClientAppStore();
12
+ exports.defaultSchemaStore = new store_1.SchemaStore();
13
+ exports.defaultExperienceStore = new store_2.SchemaExperienceStore({
14
+ schemaStore: exports.defaultSchemaStore,
15
+ });
16
+ exports.defaultAppStore.register({
17
+ id: 'default',
18
+ title: 'Demo App',
19
+ navItems: [],
20
+ defaultPage: {
21
+ label: 'Home',
22
+ link: '/home',
23
+ type: app_1.PageType.Custom,
24
+ icon: icons_1.IconPlaceholder,
25
+ },
26
+ logo: {},
27
+ });
28
+ const MetadataProvider = ({ children, experienceStore = exports.defaultExperienceStore, schemaStore = exports.defaultSchemaStore, appStore = exports.defaultAppStore, }) => {
8
29
  const contextValue = (0, context_1.useCreateContextStore)({
9
- // schemas: {},
10
- // schemaLoading: true,
11
30
  experienceStore,
12
31
  schemaStore,
13
32
  appStore,
14
33
  });
15
- // const [loading, setLoading] = useState(true);
16
- // useEffect(() => {
17
- // const schemas = schemaStore.getSchemas();
18
- // contextValue.setValue({
19
- // schemas,
20
- // schemaLoading: false,
21
- // });
22
- // setLoading(false);
23
- // }, [contextValue, schemaStore]);
24
- // if (loading) {
25
- // return null;
26
- // }
27
34
  return ((0, jsx_runtime_1.jsx)(context_2.MetadataContext.Provider, { value: contextValue, children: children }));
28
35
  };
29
36
  exports.MetadataProvider = MetadataProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@headless-adminapp/app",
3
- "version": "0.0.17-alpha.28",
3
+ "version": "0.0.17-alpha.32",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -39,5 +39,5 @@
39
39
  "react-hook-form": "7.52.2",
40
40
  "yup": "^1.4.0"
41
41
  },
42
- "gitHead": "e25bcf7611efad55ef448866d149ff5e5d19cd64"
42
+ "gitHead": "ca5690cd9046cf5fff507c697cf8d9032eef837d"
43
43
  }