@webiny/app-aco 5.40.6-beta.2 → 5.40.6
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/contexts/app.d.ts +6 -0
- package/contexts/app.js +3 -3
- package/contexts/app.js.map +1 -1
- package/package.json +16 -16
package/contexts/app.d.ts
CHANGED
|
@@ -31,5 +31,11 @@ export interface AcoAppProviderPropsManual extends BaseAcoAppProviderProps {
|
|
|
31
31
|
getFields?: () => AcoModelField[];
|
|
32
32
|
}
|
|
33
33
|
export declare type AcoAppProviderProps = AcoAppProviderPropsApi | AcoAppProviderPropsManual;
|
|
34
|
+
interface CreateAppParams {
|
|
35
|
+
id: string;
|
|
36
|
+
model: AcoModel;
|
|
37
|
+
getFields?: () => AcoModelField[];
|
|
38
|
+
}
|
|
39
|
+
export declare const createAppFromModel: (data: CreateAppParams) => AcoApp;
|
|
34
40
|
export declare const AcoAppProvider: ({ children, id, client, model: inputModel, getFields, folderIdQueryString, createNavigateFolderListLink, createNavigateFolderStorageKey, folderIdPath: initialFolderIdPath, own }: AcoAppProviderProps) => React.JSX.Element;
|
|
35
41
|
export {};
|
package/contexts/app.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.AcoAppProvider = exports.AcoAppContext = void 0;
|
|
8
|
+
exports.createAppFromModel = exports.AcoAppProvider = exports.AcoAppContext = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -18,7 +18,7 @@ var _DisplayError = require("./DisplayError");
|
|
|
18
18
|
var _navigateFolderWithRouter = require("./navigateFolderWithRouter");
|
|
19
19
|
var _acoList = require("./acoList");
|
|
20
20
|
var AcoAppContext = exports.AcoAppContext = /*#__PURE__*/_react.default.createContext(undefined);
|
|
21
|
-
var
|
|
21
|
+
var createAppFromModel = exports.createAppFromModel = function createAppFromModel(data) {
|
|
22
22
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
23
23
|
getFields: data.getFields || function () {
|
|
24
24
|
return data.model.fields;
|
|
@@ -88,7 +88,7 @@ var AcoAppProvider = exports.AcoAppProvider = function AcoAppProvider(_ref) {
|
|
|
88
88
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev), {}, {
|
|
89
89
|
loading: false,
|
|
90
90
|
model: inputModel,
|
|
91
|
-
app:
|
|
91
|
+
app: createAppFromModel({
|
|
92
92
|
id: id,
|
|
93
93
|
model: inputModel,
|
|
94
94
|
getFields: getFields
|
package/contexts/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_Progress","_appAdmin","_app","_folders","_records","_DisplayError","_navigateFolderWithRouter","_acoList","AcoAppContext","exports","React","createContext","undefined","createApp","data","_objectSpread2","default","getFields","model","fields","createApiApp","console","error","dataField","find","f","fieldId","concat","id","settings","AcoAppProvider","_ref","children","client","inputModel","folderIdQueryString","createNavigateFolderListLink","createNavigateFolderStorageKey","initialFolderIdPath","folderIdPath","own","_useState","useState","loading","app","mode","_useState2","_slicedToArray2","state","setState","folderIdInPath","useEffect","prev","query","createGetAppQuery","variables","then","response","_ref2","aco","message","code","modelId","value","useMemo","createElement","CircularProgress","DisplayError","Provider","FoldersProvider","SearchRecordsProvider","NavigateFolderWithRouterProvider","createListLink","createStorageKey","AcoListProvider","titleFieldId","DialogsProvider"],"sources":["app.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { DialogsProvider } from \"@webiny/app-admin\";\nimport { AcoApp, AcoAppMode, AcoError, AcoModel, AcoModelField } from \"~/types\";\nimport { createGetAppQuery, GetAppResult, GetAppVariables } from \"~/graphql/app.gql\";\nimport { FoldersProvider as FoldersContextProvider } from \"./folders\";\nimport { SearchRecordsProvider as SearchRecordsContextProvider } from \"./records\";\nimport { DisplayError } from \"./DisplayError\";\nimport { NavigateFolderWithRouterProvider } from \"~/contexts/navigateFolderWithRouter\";\nimport { AcoListProvider } from \"~/contexts/acoList\";\n\nexport interface AcoAppProviderContext {\n app: AcoApp;\n folderIdPath: string;\n folderIdInPath: string;\n model: AcoModel;\n client: ApolloClient<any>;\n loading: boolean;\n error?: AcoError | null;\n mode: AcoAppMode;\n}\n\ninterface AcoAppProviderState {\n loading: boolean;\n app?: AcoApp | null;\n model?: AcoModel | null;\n error?: AcoError | null;\n mode: AcoAppMode;\n}\n\nexport const AcoAppContext = React.createContext<AcoAppProviderContext | undefined>(undefined);\n\ninterface BaseAcoAppProviderProps {\n children: React.ReactNode;\n id: string;\n folderIdPath?: string;\n folderIdQueryString?: string;\n client: ApolloClient<any>;\n createNavigateFolderListLink?: () => string;\n createNavigateFolderStorageKey: () => string;\n own?: boolean;\n}\n\nexport interface AcoAppProviderPropsApi extends BaseAcoAppProviderProps {\n model?: never;\n getFields?: never;\n}\n\nexport interface AcoAppProviderPropsManual extends BaseAcoAppProviderProps {\n model: AcoModel;\n getFields?: () => AcoModelField[];\n}\n\nexport type AcoAppProviderProps = AcoAppProviderPropsApi | AcoAppProviderPropsManual;\n\ninterface CreateAppParams {\n id: string;\n model: AcoModel;\n getFields?: () => AcoModelField[];\n}\n\nconst createApp = (data: CreateAppParams): AcoApp => {\n return {\n ...data,\n getFields:\n data.getFields ||\n (() => {\n return data.model.fields;\n })\n };\n};\n\ninterface CreateApiAppParams {\n id: string;\n model: AcoModel;\n}\n\nconst createApiApp = (data: CreateApiAppParams | null): AcoApp | null => {\n if (!data) {\n console.error(`The APP could not be created. No data received.`);\n return null;\n }\n const dataField = data.model.fields.find(f => f.fieldId === \"data\");\n if (!dataField) {\n console.error(`The APP \"${data.id}\" does not have the data field.`);\n return null;\n }\n return {\n ...data,\n getFields: () => {\n return dataField?.settings?.fields || [];\n }\n };\n};\n\nexport const AcoAppProvider = ({\n children,\n id,\n client,\n model: inputModel,\n getFields,\n folderIdQueryString,\n createNavigateFolderListLink,\n createNavigateFolderStorageKey,\n folderIdPath: initialFolderIdPath,\n own\n}: AcoAppProviderProps) => {\n const [state, setState] = useState<AcoAppProviderState>({\n loading: false,\n app: null,\n model: null,\n error: null,\n mode: \"aco\"\n });\n const folderIdPath = initialFolderIdPath || \"location.folderId\";\n const folderIdInPath = folderIdPath + \"_in\";\n\n /**\n * The APP Provider can operate in two modes:\n * * `app` - when the `id` is provided, the app is fetched from the API\n * * `model` - when the `model` is provided, the app is created from the model\n */\n useEffect(() => {\n if (!id) {\n return;\n }\n /**\n * In the `model` mode, we don't need to fetch the app from the API.\n * BUT, the input model must be `undefined`. In case it's `null`, just return because there will be a model at a point.\n */\n if (inputModel !== undefined) {\n if (!inputModel) {\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: false,\n model: inputModel,\n app: createApp({\n id,\n model: inputModel,\n getFields\n }),\n mode: \"cms\"\n };\n });\n return;\n }\n if (id === state.app?.id) {\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: true\n };\n });\n client\n .query<GetAppResult, GetAppVariables>({\n query: createGetAppQuery(),\n variables: {\n id\n }\n })\n .then(response => {\n const { data, error } = response.data.aco?.app || {};\n\n if (error) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n app: null,\n model: null,\n error,\n mode: \"aco\"\n };\n });\n return;\n }\n\n setState(prev => {\n const app = createApiApp(data);\n if (!app) {\n return {\n ...prev,\n loading: false,\n app: null,\n model: null,\n mode: \"aco\",\n error: {\n message: `App \"${id}\" not found!`,\n code: \"APP_NOT_FOUND\"\n }\n };\n }\n return {\n ...prev,\n loading: false,\n app,\n model: app.model,\n error: null,\n mode: \"aco\"\n };\n });\n });\n }, [id, inputModel?.modelId]);\n\n const { app, model, error, loading, mode } = state;\n\n const value = useMemo<AcoAppProviderContext>(() => {\n return {\n app: app as AcoApp,\n folderIdPath,\n folderIdInPath,\n loading,\n client,\n model: model as AcoModel,\n error,\n mode\n };\n }, [app?.id, loading, error, model, client, mode]);\n /**\n * Do not render anything yet if there is no application.\n */\n if (error) {\n return <div>Error: {error.message}</div>;\n } else if (loading) {\n return <CircularProgress />;\n } else if (!app) {\n return (\n <DisplayError>\n There is no ACO App: <strong>{id}</strong>!\n </DisplayError>\n );\n } else if (!model) {\n return (\n <DisplayError>\n There is no model for the ACO App: <strong>{id}</strong>!\n </DisplayError>\n );\n }\n\n return (\n <AcoAppContext.Provider value={value}>\n <FoldersContextProvider>\n <SearchRecordsContextProvider>\n <NavigateFolderWithRouterProvider\n folderIdQueryString={folderIdQueryString}\n createListLink={createNavigateFolderListLink}\n createStorageKey={createNavigateFolderStorageKey}\n >\n <AcoListProvider own={own} titleFieldId={model.titleFieldId}>\n <DialogsProvider>{children}</DialogsProvider>\n </AcoListProvider>\n </NavigateFolderWithRouterProvider>\n </SearchRecordsContextProvider>\n </FoldersContextProvider>\n </AcoAppContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_Progress","_appAdmin","_app","_folders","_records","_DisplayError","_navigateFolderWithRouter","_acoList","AcoAppContext","exports","React","createContext","undefined","createAppFromModel","data","_objectSpread2","default","getFields","model","fields","createApiApp","console","error","dataField","find","f","fieldId","concat","id","settings","AcoAppProvider","_ref","children","client","inputModel","folderIdQueryString","createNavigateFolderListLink","createNavigateFolderStorageKey","initialFolderIdPath","folderIdPath","own","_useState","useState","loading","app","mode","_useState2","_slicedToArray2","state","setState","folderIdInPath","useEffect","prev","query","createGetAppQuery","variables","then","response","_ref2","aco","message","code","modelId","value","useMemo","createElement","CircularProgress","DisplayError","Provider","FoldersProvider","SearchRecordsProvider","NavigateFolderWithRouterProvider","createListLink","createStorageKey","AcoListProvider","titleFieldId","DialogsProvider"],"sources":["app.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { DialogsProvider } from \"@webiny/app-admin\";\nimport { AcoApp, AcoAppMode, AcoError, AcoModel, AcoModelField } from \"~/types\";\nimport { createGetAppQuery, GetAppResult, GetAppVariables } from \"~/graphql/app.gql\";\nimport { FoldersProvider as FoldersContextProvider } from \"./folders\";\nimport { SearchRecordsProvider as SearchRecordsContextProvider } from \"./records\";\nimport { DisplayError } from \"./DisplayError\";\nimport { NavigateFolderWithRouterProvider } from \"~/contexts/navigateFolderWithRouter\";\nimport { AcoListProvider } from \"~/contexts/acoList\";\n\nexport interface AcoAppProviderContext {\n app: AcoApp;\n folderIdPath: string;\n folderIdInPath: string;\n model: AcoModel;\n client: ApolloClient<any>;\n loading: boolean;\n error?: AcoError | null;\n mode: AcoAppMode;\n}\n\ninterface AcoAppProviderState {\n loading: boolean;\n app?: AcoApp | null;\n model?: AcoModel | null;\n error?: AcoError | null;\n mode: AcoAppMode;\n}\n\nexport const AcoAppContext = React.createContext<AcoAppProviderContext | undefined>(undefined);\n\ninterface BaseAcoAppProviderProps {\n children: React.ReactNode;\n id: string;\n folderIdPath?: string;\n folderIdQueryString?: string;\n client: ApolloClient<any>;\n createNavigateFolderListLink?: () => string;\n createNavigateFolderStorageKey: () => string;\n own?: boolean;\n}\n\nexport interface AcoAppProviderPropsApi extends BaseAcoAppProviderProps {\n model?: never;\n getFields?: never;\n}\n\nexport interface AcoAppProviderPropsManual extends BaseAcoAppProviderProps {\n model: AcoModel;\n getFields?: () => AcoModelField[];\n}\n\nexport type AcoAppProviderProps = AcoAppProviderPropsApi | AcoAppProviderPropsManual;\n\ninterface CreateAppParams {\n id: string;\n model: AcoModel;\n getFields?: () => AcoModelField[];\n}\n\nexport const createAppFromModel = (data: CreateAppParams): AcoApp => {\n return {\n ...data,\n getFields:\n data.getFields ||\n (() => {\n return data.model.fields;\n })\n };\n};\n\ninterface CreateApiAppParams {\n id: string;\n model: AcoModel;\n}\n\nconst createApiApp = (data: CreateApiAppParams | null): AcoApp | null => {\n if (!data) {\n console.error(`The APP could not be created. No data received.`);\n return null;\n }\n const dataField = data.model.fields.find(f => f.fieldId === \"data\");\n if (!dataField) {\n console.error(`The APP \"${data.id}\" does not have the data field.`);\n return null;\n }\n return {\n ...data,\n getFields: () => {\n return dataField?.settings?.fields || [];\n }\n };\n};\n\nexport const AcoAppProvider = ({\n children,\n id,\n client,\n model: inputModel,\n getFields,\n folderIdQueryString,\n createNavigateFolderListLink,\n createNavigateFolderStorageKey,\n folderIdPath: initialFolderIdPath,\n own\n}: AcoAppProviderProps) => {\n const [state, setState] = useState<AcoAppProviderState>({\n loading: false,\n app: null,\n model: null,\n error: null,\n mode: \"aco\"\n });\n const folderIdPath = initialFolderIdPath || \"location.folderId\";\n const folderIdInPath = folderIdPath + \"_in\";\n\n /**\n * The APP Provider can operate in two modes:\n * * `app` - when the `id` is provided, the app is fetched from the API\n * * `model` - when the `model` is provided, the app is created from the model\n */\n useEffect(() => {\n if (!id) {\n return;\n }\n /**\n * In the `model` mode, we don't need to fetch the app from the API.\n * BUT, the input model must be `undefined`. In case it's `null`, just return because there will be a model at a point.\n */\n if (inputModel !== undefined) {\n if (!inputModel) {\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: false,\n model: inputModel,\n app: createAppFromModel({\n id,\n model: inputModel,\n getFields\n }),\n mode: \"cms\"\n };\n });\n return;\n }\n if (id === state.app?.id) {\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: true\n };\n });\n client\n .query<GetAppResult, GetAppVariables>({\n query: createGetAppQuery(),\n variables: {\n id\n }\n })\n .then(response => {\n const { data, error } = response.data.aco?.app || {};\n\n if (error) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n app: null,\n model: null,\n error,\n mode: \"aco\"\n };\n });\n return;\n }\n\n setState(prev => {\n const app = createApiApp(data);\n if (!app) {\n return {\n ...prev,\n loading: false,\n app: null,\n model: null,\n mode: \"aco\",\n error: {\n message: `App \"${id}\" not found!`,\n code: \"APP_NOT_FOUND\"\n }\n };\n }\n return {\n ...prev,\n loading: false,\n app,\n model: app.model,\n error: null,\n mode: \"aco\"\n };\n });\n });\n }, [id, inputModel?.modelId]);\n\n const { app, model, error, loading, mode } = state;\n\n const value = useMemo<AcoAppProviderContext>(() => {\n return {\n app: app as AcoApp,\n folderIdPath,\n folderIdInPath,\n loading,\n client,\n model: model as AcoModel,\n error,\n mode\n };\n }, [app?.id, loading, error, model, client, mode]);\n /**\n * Do not render anything yet if there is no application.\n */\n if (error) {\n return <div>Error: {error.message}</div>;\n } else if (loading) {\n return <CircularProgress />;\n } else if (!app) {\n return (\n <DisplayError>\n There is no ACO App: <strong>{id}</strong>!\n </DisplayError>\n );\n } else if (!model) {\n return (\n <DisplayError>\n There is no model for the ACO App: <strong>{id}</strong>!\n </DisplayError>\n );\n }\n\n return (\n <AcoAppContext.Provider value={value}>\n <FoldersContextProvider>\n <SearchRecordsContextProvider>\n <NavigateFolderWithRouterProvider\n folderIdQueryString={folderIdQueryString}\n createListLink={createNavigateFolderListLink}\n createStorageKey={createNavigateFolderStorageKey}\n >\n <AcoListProvider own={own} titleFieldId={model.titleFieldId}>\n <DialogsProvider>{children}</DialogsProvider>\n </AcoListProvider>\n </NavigateFolderWithRouterProvider>\n </SearchRecordsContextProvider>\n </FoldersContextProvider>\n </AcoAppContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-aco",
|
|
3
|
-
"version": "5.40.6
|
|
3
|
+
"version": "5.40.6",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,18 +17,18 @@
|
|
|
17
17
|
"@material-design-icons/svg": "0.14.13",
|
|
18
18
|
"@material-symbols/svg-400": "0.4.3",
|
|
19
19
|
"@minoru/react-dnd-treeview": "3.2.1",
|
|
20
|
-
"@webiny/app": "5.40.6
|
|
21
|
-
"@webiny/app-admin": "5.40.6
|
|
22
|
-
"@webiny/app-headless-cms-common": "5.40.6
|
|
23
|
-
"@webiny/app-security": "5.40.6
|
|
24
|
-
"@webiny/app-wcp": "5.40.6
|
|
25
|
-
"@webiny/form": "5.40.6
|
|
26
|
-
"@webiny/plugins": "5.40.6
|
|
27
|
-
"@webiny/react-properties": "5.40.6
|
|
28
|
-
"@webiny/react-router": "5.40.6
|
|
29
|
-
"@webiny/ui": "5.40.6
|
|
30
|
-
"@webiny/utils": "5.40.6
|
|
31
|
-
"@webiny/validation": "5.40.6
|
|
20
|
+
"@webiny/app": "5.40.6",
|
|
21
|
+
"@webiny/app-admin": "5.40.6",
|
|
22
|
+
"@webiny/app-headless-cms-common": "5.40.6",
|
|
23
|
+
"@webiny/app-security": "5.40.6",
|
|
24
|
+
"@webiny/app-wcp": "5.40.6",
|
|
25
|
+
"@webiny/form": "5.40.6",
|
|
26
|
+
"@webiny/plugins": "5.40.6",
|
|
27
|
+
"@webiny/react-properties": "5.40.6",
|
|
28
|
+
"@webiny/react-router": "5.40.6",
|
|
29
|
+
"@webiny/ui": "5.40.6",
|
|
30
|
+
"@webiny/utils": "5.40.6",
|
|
31
|
+
"@webiny/validation": "5.40.6",
|
|
32
32
|
"dot-prop-immutable": "2.1.1",
|
|
33
33
|
"graphql": "15.8.0",
|
|
34
34
|
"graphql-tag": "2.12.6",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"@babel/preset-typescript": "7.24.1",
|
|
52
52
|
"@babel/runtime": "7.24.1",
|
|
53
53
|
"@types/react": "18.2.79",
|
|
54
|
-
"@webiny/cli": "5.40.6
|
|
55
|
-
"@webiny/project-utils": "5.40.6
|
|
54
|
+
"@webiny/cli": "5.40.6",
|
|
55
|
+
"@webiny/project-utils": "5.40.6",
|
|
56
56
|
"apollo-client": "2.6.10",
|
|
57
57
|
"apollo-link": "1.2.14",
|
|
58
58
|
"rimraf": "5.0.5",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"build": "yarn webiny run build",
|
|
68
68
|
"watch": "yarn webiny run watch"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "f9da84b373e62f9f269599c4301e5e4418a98d51"
|
|
71
71
|
}
|