@webiny/app-file-manager 0.0.0-unstable.6e5425ee89 → 0.0.0-unstable.7f63ea0744
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.
|
@@ -74,22 +74,20 @@ var plugin = {
|
|
|
74
74
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
75
75
|
var client, _yield$client$query, data;
|
|
76
76
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
77
|
-
while (1) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return _context.stop();
|
|
92
|
-
}
|
|
77
|
+
while (1) switch (_context.prev = _context.next) {
|
|
78
|
+
case 0:
|
|
79
|
+
client = _ref3.client;
|
|
80
|
+
_context.next = 3;
|
|
81
|
+
return client.query({
|
|
82
|
+
query: IS_INSTALLED
|
|
83
|
+
});
|
|
84
|
+
case 3:
|
|
85
|
+
_yield$client$query = _context.sent;
|
|
86
|
+
data = _yield$client$query.data;
|
|
87
|
+
return _context.abrupt("return", data.fileManager.version);
|
|
88
|
+
case 6:
|
|
89
|
+
case "end":
|
|
90
|
+
return _context.stop();
|
|
93
91
|
}
|
|
94
92
|
}, _callee);
|
|
95
93
|
}))();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SimpleFormPlaceholder","styled","minHeight","minWidth","t","i18n","ns","IS_INSTALLED","gql","INSTALL","FMInstaller","onInstalled","client","useApolloClient","useState","error","setError","apiUrl","appConfig","getKey","process","env","REACT_APP_API_URL","useEffect","mutate","mutation","variables","srcPrefix","then","data","fileManager","install","message","setTimeout","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render","upgrades"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst t = i18n.ns(\"app-file-manager/admin/installation\");\n\nconst IS_INSTALLED = gql`\n query IsFileManagerInstalled {\n fileManager {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallFileManager($srcPrefix: String) {\n fileManager {\n install(srcPrefix: $srcPrefix) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\ninterface FileManagerInstallerProps {\n onInstalled: () => Promise<void>;\n}\nconst FMInstaller: React.FC<FileManagerInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n\n useEffect(() => {\n client\n .mutate({\n mutation: INSTALL,\n variables: { srcPrefix: apiUrl + \"/files\" }\n })\n .then(({ data }) => {\n const { error } = data.fileManager.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={t`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n t`Installing File Manager...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-fm\",\n type: \"admin-installation\",\n title: t`File Manager`,\n dependencies: [\"admin-installation-security\", \"admin-installation-i18n\"],\n secure: true,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.fileManager.version;\n },\n render({ onInstalled }) {\n return <FMInstaller onInstalled={onInstalled} />;\n },\n upgrades: []\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAyD;AAEzD,IAAMA,qBAAqB,oBAAGC,eAAM;EAAA;EAAA;AAAA,GAAK;EACrCC,SAAS,EAAE,GAAG;EACdC,QAAQ,EAAE;AACd,CAAC,CAAC;AAEF,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,qCAAqC,CAAC;AAExD,IAAMC,YAAY,OAAGC,mBAAG,wLAMvB;AAED,IAAMC,OAAO,OAAGD,mBAAG,wYAalB;AAID,IAAME,WAAgD,GAAG,SAAnDA,WAAgD,OAAwB;EAAA,IAAlBC,WAAW,QAAXA,WAAW;EACnE,IAAMC,MAAM,GAAG,IAAAC,2BAAe,GAAE;EAChC,gBAA0B,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAA;IAAjCC,KAAK;IAAEC,QAAQ;EAEtB,IAAMC,MAAM,GAAGC,cAAS,CAACC,MAAM,CAAC,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAC;EAEzE,IAAAC,gBAAS,EAAC,YAAM;IACZX,MAAM,CACDY,MAAM,CAAC;MACJC,QAAQ,EAAEhB,OAAO;MACjBiB,SAAS,EAAE;QAAEC,SAAS,EAAEV,MAAM,GAAG;MAAS;IAC9C,CAAC,CAAC,CACDW,IAAI,CAAC,iBAAc;MAAA,IAAXC,IAAI,SAAJA,IAAI;MACT,IAAQd,KAAK,GAAKc,IAAI,CAACC,WAAW,CAACC,OAAO,CAAlChB,KAAK;MACb,IAAIA,KAAK,EAAE;QACPC,QAAQ,CAACD,KAAK,CAACiB,OAAO,CAAC;QACvB;MACJ;;MAEA;MACAC,UAAU,CAACtB,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMuB,KAAK,GAAGnB,KAAK,gBACf,6BAAC,YAAK;IAAC,KAAK,EAAEX,CAAC,yGAAuB;IAAC,IAAI,EAAE;EAAS,GACjDW,KAAK,CACF,GAERX,CAAC,+GACJ;EAED,oBACI,6BAAC,sBAAU,qBACP,6BAAC,0BAAgB;IAAC,KAAK,EAAE8B;EAAM,EAAG,eAClC,6BAAC,6BAAiB,qBACd,6BAAC,qBAAqB,OAAG,CACT,CACX;AAErB,CAAC;AAED,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAElC,CAAC,iGAAc;EACtBmC,YAAY,EAAE,CAAC,6BAA6B,EAAE,yBAAyB,CAAC;EACxEC,MAAM,EAAE,IAAI;EACNC,mBAAmB,sCAAa;IAAA;MAAA;MAAA;QAAA;UAAA;
|
|
1
|
+
{"version":3,"names":["SimpleFormPlaceholder","styled","minHeight","minWidth","t","i18n","ns","IS_INSTALLED","gql","INSTALL","FMInstaller","onInstalled","client","useApolloClient","useState","error","setError","apiUrl","appConfig","getKey","process","env","REACT_APP_API_URL","useEffect","mutate","mutation","variables","srcPrefix","then","data","fileManager","install","message","setTimeout","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render","upgrades"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst t = i18n.ns(\"app-file-manager/admin/installation\");\n\nconst IS_INSTALLED = gql`\n query IsFileManagerInstalled {\n fileManager {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallFileManager($srcPrefix: String) {\n fileManager {\n install(srcPrefix: $srcPrefix) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\ninterface FileManagerInstallerProps {\n onInstalled: () => Promise<void>;\n}\nconst FMInstaller: React.FC<FileManagerInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n\n useEffect(() => {\n client\n .mutate({\n mutation: INSTALL,\n variables: { srcPrefix: apiUrl + \"/files\" }\n })\n .then(({ data }) => {\n const { error } = data.fileManager.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={t`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n t`Installing File Manager...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-fm\",\n type: \"admin-installation\",\n title: t`File Manager`,\n dependencies: [\"admin-installation-security\", \"admin-installation-i18n\"],\n secure: true,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.fileManager.version;\n },\n render({ onInstalled }) {\n return <FMInstaller onInstalled={onInstalled} />;\n },\n upgrades: []\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAyD;AAEzD,IAAMA,qBAAqB,oBAAGC,eAAM;EAAA;EAAA;AAAA,GAAK;EACrCC,SAAS,EAAE,GAAG;EACdC,QAAQ,EAAE;AACd,CAAC,CAAC;AAEF,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,qCAAqC,CAAC;AAExD,IAAMC,YAAY,OAAGC,mBAAG,wLAMvB;AAED,IAAMC,OAAO,OAAGD,mBAAG,wYAalB;AAID,IAAME,WAAgD,GAAG,SAAnDA,WAAgD,OAAwB;EAAA,IAAlBC,WAAW,QAAXA,WAAW;EACnE,IAAMC,MAAM,GAAG,IAAAC,2BAAe,GAAE;EAChC,gBAA0B,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAA;IAAjCC,KAAK;IAAEC,QAAQ;EAEtB,IAAMC,MAAM,GAAGC,cAAS,CAACC,MAAM,CAAC,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAC;EAEzE,IAAAC,gBAAS,EAAC,YAAM;IACZX,MAAM,CACDY,MAAM,CAAC;MACJC,QAAQ,EAAEhB,OAAO;MACjBiB,SAAS,EAAE;QAAEC,SAAS,EAAEV,MAAM,GAAG;MAAS;IAC9C,CAAC,CAAC,CACDW,IAAI,CAAC,iBAAc;MAAA,IAAXC,IAAI,SAAJA,IAAI;MACT,IAAQd,KAAK,GAAKc,IAAI,CAACC,WAAW,CAACC,OAAO,CAAlChB,KAAK;MACb,IAAIA,KAAK,EAAE;QACPC,QAAQ,CAACD,KAAK,CAACiB,OAAO,CAAC;QACvB;MACJ;;MAEA;MACAC,UAAU,CAACtB,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMuB,KAAK,GAAGnB,KAAK,gBACf,6BAAC,YAAK;IAAC,KAAK,EAAEX,CAAC,yGAAuB;IAAC,IAAI,EAAE;EAAS,GACjDW,KAAK,CACF,GAERX,CAAC,+GACJ;EAED,oBACI,6BAAC,sBAAU,qBACP,6BAAC,0BAAgB;IAAC,KAAK,EAAE8B;EAAM,EAAG,eAClC,6BAAC,6BAAiB,qBACd,6BAAC,qBAAqB,OAAG,CACT,CACX;AAErB,CAAC;AAED,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAElC,CAAC,iGAAc;EACtBmC,YAAY,EAAE,CAAC,6BAA6B,EAAE,yBAAyB,CAAC;EACxEC,MAAM,EAAE,IAAI;EACNC,mBAAmB,sCAAa;IAAA;MAAA;MAAA;QAAA;UAAA;YAAV7B,MAAM,SAANA,MAAM;YAAA;YAAA,OACPA,MAAM,CAAC8B,KAAK,CAAC;cAAEA,KAAK,EAAEnC;YAAa,CAAC,CAAC;UAAA;YAAA;YAApDsB,IAAI,uBAAJA,IAAI;YAAA,iCACLA,IAAI,CAACC,WAAW,CAACa,OAAO;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EACnC,CAAC;EACDC,MAAM,yBAAkB;IAAA,IAAfjC,WAAW,SAAXA,WAAW;IAChB,oBAAO,6BAAC,WAAW;MAAC,WAAW,EAAEA;IAAY,EAAG;EACpD,CAAC;EACDkC,QAAQ,EAAE;AACd,CAAC;AAAC,eAEaV,MAAM;AAAA"}
|
|
@@ -43,35 +43,33 @@ var FileManagerSettings = function FileManagerSettings() {
|
|
|
43
43
|
var _onSubmit = /*#__PURE__*/function () {
|
|
44
44
|
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
|
|
45
45
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
46
|
-
while (1) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
srcPrefix: data.srcPrefix
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
update: function update(cache, result) {
|
|
59
|
-
var data = structuredClone(cache.readQuery({
|
|
60
|
-
query: _graphql.default.GET_SETTINGS
|
|
61
|
-
}));
|
|
62
|
-
data.fileManager.getSettings.data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data.fileManager.getSettings.data), result.data.fileManager.updateSettings.data);
|
|
63
|
-
cache.writeQuery({
|
|
64
|
-
query: _graphql.default.GET_SETTINGS,
|
|
65
|
-
data: data
|
|
66
|
-
});
|
|
46
|
+
while (1) switch (_context.prev = _context.next) {
|
|
47
|
+
case 0:
|
|
48
|
+
_context.next = 2;
|
|
49
|
+
return update({
|
|
50
|
+
variables: {
|
|
51
|
+
data: {
|
|
52
|
+
uploadMinFileSize: parseFloat(data.uploadMinFileSize),
|
|
53
|
+
uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),
|
|
54
|
+
srcPrefix: data.srcPrefix
|
|
67
55
|
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
56
|
+
},
|
|
57
|
+
update: function update(cache, result) {
|
|
58
|
+
var data = structuredClone(cache.readQuery({
|
|
59
|
+
query: _graphql.default.GET_SETTINGS
|
|
60
|
+
}));
|
|
61
|
+
data.fileManager.getSettings.data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data.fileManager.getSettings.data), result.data.fileManager.updateSettings.data);
|
|
62
|
+
cache.writeQuery({
|
|
63
|
+
query: _graphql.default.GET_SETTINGS,
|
|
64
|
+
data: data
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
case 2:
|
|
69
|
+
showSnackbar("Settings updated successfully.");
|
|
70
|
+
case 3:
|
|
71
|
+
case "end":
|
|
72
|
+
return _context.stop();
|
|
75
73
|
}
|
|
76
74
|
}, _callee);
|
|
77
75
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["prefixValidator","value","endsWith","Error","FileManagerSettings","useSnackbar","showSnackbar","graphql","GET_SETTINGS","data","queryInProgress","loading","UPDATE_SETTINGS","update","result","settings","get","mutationInProgress","onSubmit","variables","uploadMinFileSize","parseFloat","uploadMaxFileSize","srcPrefix","cache","structuredClone","readQuery","query","fileManager","getSettings","updateSettings","writeQuery","Bind","form","validation","create","ev","submit"],"sources":["FileManagerSettings.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { Query, Mutation } from \"@apollo/react-components\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { Input } from \"@webiny/ui/Input\";\nimport graphql from \"../graphql\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport get from \"lodash.get\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { QueryGetSettingsResult, Settings } from \"~/types\";\nimport { MutationFunction, MutationResult } from \"@apollo/react-common\";\n\nfunction prefixValidator(value: string) {\n if (!value.endsWith(\"/files/\")) {\n throw Error(`File URL prefix must end with \"/files/\"`);\n }\n}\n\nconst FileManagerSettings: React.FC = () => {\n const { showSnackbar } = useSnackbar();\n\n return (\n <Query query={graphql.GET_SETTINGS}>\n {({ data, loading: queryInProgress }: MutationResult<QueryGetSettingsResult>) => (\n <Mutation mutation={graphql.UPDATE_SETTINGS}>\n {(update: MutationFunction, result: MutationResult) => {\n const settings = (get(data, \"fileManager.getSettings.data\") ||\n {}) as Settings;\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: Settings): Promise<void> => {\n await update({\n variables: {\n data: {\n uploadMinFileSize: parseFloat(data.uploadMinFileSize),\n uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),\n srcPrefix: data.srcPrefix\n }\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery({ query: graphql.GET_SETTINGS })\n );\n\n data.fileManager.getSettings.data = {\n ...data.fileManager.getSettings.data,\n ...result.data.fileManager.updateSettings.data\n };\n\n cache.writeQuery({\n query: graphql.GET_SETTINGS,\n data\n });\n }\n });\n showSnackbar(\"Settings updated successfully.\");\n };\n return (\n <CenteredView>\n <Form\n data={settings}\n onSubmit={data => {\n /**\n * We are positive that data is Settings.\n */\n onSubmit(data as unknown as Settings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <CircularProgress />\n )}\n <SimpleFormHeader title=\"General Settings\" />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMinFileSize\"}>\n <Input\n type=\"number\"\n label=\"Minimum file upload size\"\n description=\"The smallest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMaxFileSize\"}>\n <Input\n type=\"number\"\n label=\"Maximum file upload size\"\n description=\"The largest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"srcPrefix\"}\n validators={[\n validation.create(\"url\"),\n prefixValidator\n ]}\n >\n <Input\n label=\"File URL prefix\"\n description=\"This prefix will be prepended to the file key to form the full file URL.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >\n Save Settings\n </ButtonPrimary>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n\nexport default FileManagerSettings;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["prefixValidator","value","endsWith","Error","FileManagerSettings","useSnackbar","showSnackbar","graphql","GET_SETTINGS","data","queryInProgress","loading","UPDATE_SETTINGS","update","result","settings","get","mutationInProgress","onSubmit","variables","uploadMinFileSize","parseFloat","uploadMaxFileSize","srcPrefix","cache","structuredClone","readQuery","query","fileManager","getSettings","updateSettings","writeQuery","Bind","form","validation","create","ev","submit"],"sources":["FileManagerSettings.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { Query, Mutation } from \"@apollo/react-components\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { Input } from \"@webiny/ui/Input\";\nimport graphql from \"../graphql\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport get from \"lodash.get\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { QueryGetSettingsResult, Settings } from \"~/types\";\nimport { MutationFunction, MutationResult } from \"@apollo/react-common\";\n\nfunction prefixValidator(value: string) {\n if (!value.endsWith(\"/files/\")) {\n throw Error(`File URL prefix must end with \"/files/\"`);\n }\n}\n\nconst FileManagerSettings: React.FC = () => {\n const { showSnackbar } = useSnackbar();\n\n return (\n <Query query={graphql.GET_SETTINGS}>\n {({ data, loading: queryInProgress }: MutationResult<QueryGetSettingsResult>) => (\n <Mutation mutation={graphql.UPDATE_SETTINGS}>\n {(update: MutationFunction, result: MutationResult) => {\n const settings = (get(data, \"fileManager.getSettings.data\") ||\n {}) as Settings;\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: Settings): Promise<void> => {\n await update({\n variables: {\n data: {\n uploadMinFileSize: parseFloat(data.uploadMinFileSize),\n uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),\n srcPrefix: data.srcPrefix\n }\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery({ query: graphql.GET_SETTINGS })\n );\n\n data.fileManager.getSettings.data = {\n ...data.fileManager.getSettings.data,\n ...result.data.fileManager.updateSettings.data\n };\n\n cache.writeQuery({\n query: graphql.GET_SETTINGS,\n data\n });\n }\n });\n showSnackbar(\"Settings updated successfully.\");\n };\n return (\n <CenteredView>\n <Form\n data={settings}\n onSubmit={data => {\n /**\n * We are positive that data is Settings.\n */\n onSubmit(data as unknown as Settings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <CircularProgress />\n )}\n <SimpleFormHeader title=\"General Settings\" />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMinFileSize\"}>\n <Input\n type=\"number\"\n label=\"Minimum file upload size\"\n description=\"The smallest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMaxFileSize\"}>\n <Input\n type=\"number\"\n label=\"Maximum file upload size\"\n description=\"The largest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"srcPrefix\"}\n validators={[\n validation.create(\"url\"),\n prefixValidator\n ]}\n >\n <Input\n label=\"File URL prefix\"\n description=\"This prefix will be prepended to the file key to form the full file URL.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >\n Save Settings\n </ButtonPrimary>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n\nexport default FileManagerSettings;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-file-manager",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.7f63ea0744",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"@apollo/react-common": "3.1.4",
|
|
13
13
|
"@apollo/react-components": "3.1.5",
|
|
14
14
|
"@apollo/react-hooks": "3.1.5",
|
|
15
|
-
"@babel/runtime": "7.20.
|
|
15
|
+
"@babel/runtime": "7.20.13",
|
|
16
16
|
"@emotion/core": "10.3.1",
|
|
17
17
|
"@emotion/styled": "10.3.0",
|
|
18
18
|
"@types/react": "17.0.39",
|
|
19
|
-
"@webiny/app": "0.0.0-unstable.
|
|
20
|
-
"@webiny/app-admin": "0.0.0-unstable.
|
|
21
|
-
"@webiny/app-security": "0.0.0-unstable.
|
|
22
|
-
"@webiny/form": "0.0.0-unstable.
|
|
23
|
-
"@webiny/plugins": "0.0.0-unstable.
|
|
24
|
-
"@webiny/ui": "0.0.0-unstable.
|
|
25
|
-
"@webiny/validation": "0.0.0-unstable.
|
|
19
|
+
"@webiny/app": "0.0.0-unstable.7f63ea0744",
|
|
20
|
+
"@webiny/app-admin": "0.0.0-unstable.7f63ea0744",
|
|
21
|
+
"@webiny/app-security": "0.0.0-unstable.7f63ea0744",
|
|
22
|
+
"@webiny/form": "0.0.0-unstable.7f63ea0744",
|
|
23
|
+
"@webiny/plugins": "0.0.0-unstable.7f63ea0744",
|
|
24
|
+
"@webiny/ui": "0.0.0-unstable.7f63ea0744",
|
|
25
|
+
"@webiny/validation": "0.0.0-unstable.7f63ea0744",
|
|
26
26
|
"apollo-cache": "1.3.5",
|
|
27
27
|
"apollo-client": "2.6.10",
|
|
28
28
|
"apollo-link": "1.2.14",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"@babel/preset-react": "^7.18.6",
|
|
42
42
|
"@babel/preset-typescript": "^7.18.6",
|
|
43
43
|
"@svgr/webpack": "^6.1.1",
|
|
44
|
-
"@webiny/cli": "^0.0.0-unstable.
|
|
45
|
-
"@webiny/project-utils": "^0.0.0-unstable.
|
|
44
|
+
"@webiny/cli": "^0.0.0-unstable.7f63ea0744",
|
|
45
|
+
"@webiny/project-utils": "^0.0.0-unstable.7f63ea0744",
|
|
46
46
|
"rimraf": "^3.0.2",
|
|
47
47
|
"ttypescript": "^1.5.13",
|
|
48
48
|
"typescript": "4.7.4"
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"build": "yarn webiny run build",
|
|
56
56
|
"watch": "yarn webiny run watch"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "7f63ea0744c9e31977e5dabb95538d22b4db585c"
|
|
59
59
|
}
|