@webiny/app-admin-ui 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.81ae05e56b

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.
@@ -1,33 +1,32 @@
1
1
  import React, { useMemo } from "react";
2
2
  import { SidebarProvider as AdminUiSidebar } from "@webiny/admin-ui";
3
3
  import { useLocalStorage, useLocalStorageValue } from "@webiny/app";
4
- const PINNED_ITEMS_KEY = "navigation/pinned/items";
4
+ const SIDEBAR_STATE_KEY = "navigation/state";
5
5
  export const SidebarProvider = Component => {
6
6
  return function SidebarProvider(props) {
7
- const rawPinnedItems = useLocalStorageValue(PINNED_ITEMS_KEY);
7
+ const rawState = useLocalStorageValue(SIDEBAR_STATE_KEY);
8
8
  const {
9
9
  set
10
10
  } = useLocalStorage();
11
- const pinnedItems = useMemo(() => {
11
+ const state = useMemo(() => {
12
12
  try {
13
- if (Array.isArray(rawPinnedItems)) {
14
- return rawPinnedItems;
13
+ if (typeof rawState === "object" && rawState !== null) {
14
+ return rawState;
15
15
  }
16
- if (typeof rawPinnedItems === "string") {
17
- const parsed = JSON.parse(rawPinnedItems);
18
- return Array.isArray(parsed) ? parsed : [];
16
+ if (typeof rawState === "string") {
17
+ return JSON.parse(rawState);
19
18
  }
20
19
  } catch {
21
20
  // Ignore parse errors
22
21
  }
23
- return [];
24
- }, [rawPinnedItems]);
25
- const setPinnedItems = items => {
26
- set(PINNED_ITEMS_KEY, JSON.stringify(items));
22
+ return undefined;
23
+ }, [rawState]);
24
+ const onChangeState = newState => {
25
+ set(SIDEBAR_STATE_KEY, JSON.stringify(newState));
27
26
  };
28
27
  return /*#__PURE__*/React.createElement(AdminUiSidebar, {
29
- pinnedItems: pinnedItems,
30
- onChangePinnedItems: setPinnedItems
28
+ state: state,
29
+ onChangeState: onChangeState
31
30
  }, /*#__PURE__*/React.createElement(Component, props));
32
31
  };
33
32
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","SidebarProvider","AdminUiSidebar","useLocalStorage","useLocalStorageValue","PINNED_ITEMS_KEY","Component","props","rawPinnedItems","set","pinnedItems","Array","isArray","parsed","JSON","parse","setPinnedItems","items","stringify","createElement","onChangePinnedItems"],"sources":["SidebarProvider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { SidebarProvider as AdminUiSidebar } from \"@webiny/admin-ui\";\nimport { useLocalStorage, useLocalStorageValue } from \"@webiny/app\";\n\ninterface NavigationProviderProps {\n children?: React.ReactNode;\n}\n\nconst PINNED_ITEMS_KEY = \"navigation/pinned/items\";\n\nexport const SidebarProvider = (Component: React.ComponentType<NavigationProviderProps>) => {\n return function SidebarProvider(props: NavigationProviderProps) {\n const rawPinnedItems = useLocalStorageValue(PINNED_ITEMS_KEY);\n const { set } = useLocalStorage();\n\n const pinnedItems = useMemo(() => {\n try {\n if (Array.isArray(rawPinnedItems)) {\n return rawPinnedItems;\n }\n if (typeof rawPinnedItems === \"string\") {\n const parsed = JSON.parse(rawPinnedItems);\n return Array.isArray(parsed) ? parsed : [];\n }\n } catch {\n // Ignore parse errors\n }\n return [];\n }, [rawPinnedItems]);\n\n const setPinnedItems = (items: string[]) => {\n set(PINNED_ITEMS_KEY, JSON.stringify(items));\n };\n\n return (\n <AdminUiSidebar pinnedItems={pinnedItems} onChangePinnedItems={setPinnedItems}>\n <Component {...props} />\n </AdminUiSidebar>\n );\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe,IAAIC,cAAc,QAAQ,kBAAkB;AACpE,SAASC,eAAe,EAAEC,oBAAoB,QAAQ,aAAa;AAMnE,MAAMC,gBAAgB,GAAG,yBAAyB;AAElD,OAAO,MAAMJ,eAAe,GAAIK,SAAuD,IAAK;EACxF,OAAO,SAASL,eAAeA,CAACM,KAA8B,EAAE;IAC5D,MAAMC,cAAc,GAAGJ,oBAAoB,CAACC,gBAAgB,CAAC;IAC7D,MAAM;MAAEI;IAAI,CAAC,GAAGN,eAAe,CAAC,CAAC;IAEjC,MAAMO,WAAW,GAAGV,OAAO,CAAC,MAAM;MAC9B,IAAI;QACA,IAAIW,KAAK,CAACC,OAAO,CAACJ,cAAc,CAAC,EAAE;UAC/B,OAAOA,cAAc;QACzB;QACA,IAAI,OAAOA,cAAc,KAAK,QAAQ,EAAE;UACpC,MAAMK,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACP,cAAc,CAAC;UACzC,OAAOG,KAAK,CAACC,OAAO,CAACC,MAAM,CAAC,GAAGA,MAAM,GAAG,EAAE;QAC9C;MACJ,CAAC,CAAC,MAAM;QACJ;MAAA;MAEJ,OAAO,EAAE;IACb,CAAC,EAAE,CAACL,cAAc,CAAC,CAAC;IAEpB,MAAMQ,cAAc,GAAIC,KAAe,IAAK;MACxCR,GAAG,CAACJ,gBAAgB,EAAES,IAAI,CAACI,SAAS,CAACD,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,oBACIlB,KAAA,CAAAoB,aAAA,CAACjB,cAAc;MAACQ,WAAW,EAAEA,WAAY;MAACU,mBAAmB,EAAEJ;IAAe,gBAC1EjB,KAAA,CAAAoB,aAAA,CAACb,SAAS,EAAKC,KAAQ,CACX,CAAC;EAEzB,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","SidebarProvider","AdminUiSidebar","useLocalStorage","useLocalStorageValue","SIDEBAR_STATE_KEY","Component","props","rawState","set","state","JSON","parse","undefined","onChangeState","newState","stringify","createElement"],"sources":["SidebarProvider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { SidebarProvider as AdminUiSidebar } from \"@webiny/admin-ui\";\nimport { useLocalStorage, useLocalStorageValue } from \"@webiny/app\";\n\ninterface NavigationProviderProps {\n children?: React.ReactNode;\n}\n\nconst SIDEBAR_STATE_KEY = \"navigation/state\";\n\ntype SidebarState = {\n pinned: boolean;\n expandedSections: string[];\n pinnedItems: string[];\n};\n\nexport const SidebarProvider = (Component: React.ComponentType<NavigationProviderProps>) => {\n return function SidebarProvider(props: NavigationProviderProps) {\n const rawState = useLocalStorageValue(SIDEBAR_STATE_KEY);\n const { set } = useLocalStorage();\n\n const state = useMemo(() => {\n try {\n if (typeof rawState === \"object\" && rawState !== null) {\n return rawState as SidebarState;\n }\n if (typeof rawState === \"string\") {\n return JSON.parse(rawState) as SidebarState;\n }\n } catch {\n // Ignore parse errors\n }\n return undefined;\n }, [rawState]);\n\n const onChangeState = (newState: SidebarState) => {\n set(SIDEBAR_STATE_KEY, JSON.stringify(newState));\n };\n\n return (\n <AdminUiSidebar state={state} onChangeState={onChangeState}>\n <Component {...props} />\n </AdminUiSidebar>\n );\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe,IAAIC,cAAc,QAAQ,kBAAkB;AACpE,SAASC,eAAe,EAAEC,oBAAoB,QAAQ,aAAa;AAMnE,MAAMC,iBAAiB,GAAG,kBAAkB;AAQ5C,OAAO,MAAMJ,eAAe,GAAIK,SAAuD,IAAK;EACxF,OAAO,SAASL,eAAeA,CAACM,KAA8B,EAAE;IAC5D,MAAMC,QAAQ,GAAGJ,oBAAoB,CAACC,iBAAiB,CAAC;IACxD,MAAM;MAAEI;IAAI,CAAC,GAAGN,eAAe,CAAC,CAAC;IAEjC,MAAMO,KAAK,GAAGV,OAAO,CAAC,MAAM;MACxB,IAAI;QACA,IAAI,OAAOQ,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;UACnD,OAAOA,QAAQ;QACnB;QACA,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;UAC9B,OAAOG,IAAI,CAACC,KAAK,CAACJ,QAAQ,CAAC;QAC/B;MACJ,CAAC,CAAC,MAAM;QACJ;MAAA;MAEJ,OAAOK,SAAS;IACpB,CAAC,EAAE,CAACL,QAAQ,CAAC,CAAC;IAEd,MAAMM,aAAa,GAAIC,QAAsB,IAAK;MAC9CN,GAAG,CAACJ,iBAAiB,EAAEM,IAAI,CAACK,SAAS,CAACD,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,oBACIhB,KAAA,CAAAkB,aAAA,CAACf,cAAc;MAACQ,KAAK,EAAEA,KAAM;MAACI,aAAa,EAAEA;IAAc,gBACvDf,KAAA,CAAAkB,aAAA,CAACX,SAAS,EAAKC,KAAQ,CACX,CAAC;EAEzB,CAAC;AACL,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-admin-ui",
3
- "version": "0.0.0-unstable.6f45466a1d",
3
+ "version": "0.0.0-unstable.81ae05e56b",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -10,21 +10,20 @@
10
10
  "author": "Webiny Ltd.",
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
- "@types/react": "18.2.79",
14
- "@webiny/admin-ui": "0.0.0-unstable.6f45466a1d",
15
- "@webiny/app": "0.0.0-unstable.6f45466a1d",
16
- "@webiny/app-admin": "0.0.0-unstable.6f45466a1d",
17
- "@webiny/icons": "0.0.0-unstable.6f45466a1d",
18
- "react": "18.2.0",
19
- "react-dom": "18.2.0",
13
+ "@types/react": "18.3.28",
14
+ "@webiny/admin-ui": "0.0.0-unstable.81ae05e56b",
15
+ "@webiny/app": "0.0.0-unstable.81ae05e56b",
16
+ "@webiny/app-admin": "0.0.0-unstable.81ae05e56b",
17
+ "@webiny/icons": "0.0.0-unstable.81ae05e56b",
18
+ "react": "18.3.1",
19
+ "react-dom": "18.3.1",
20
20
  "react-helmet": "6.1.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@emotion/babel-plugin": "11.13.5",
24
24
  "@types/react-helmet": "6.1.11",
25
- "@webiny/build-tools": "0.0.0-unstable.6f45466a1d",
26
- "babel-plugin-named-asset-import": "1.0.0-next.fb6e6f70",
27
- "rimraf": "6.1.2",
25
+ "@webiny/build-tools": "0.0.0-unstable.81ae05e56b",
26
+ "rimraf": "6.1.3",
28
27
  "typescript": "5.9.3"
29
28
  },
30
29
  "publishConfig": {
@@ -36,5 +35,5 @@
36
35
  "removeViewBox": false
37
36
  }
38
37
  },
39
- "gitHead": "6f45466a1d9fb94f6156923501eb90ac303b81a5"
38
+ "gitHead": "81ae05e56bcc774d1e077ca615a0005e736aa5a6"
40
39
  }