@webiny/app-admin-ui 0.0.0-unstable.61c048f412 → 0.0.0-unstable.6f45466a1d

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,32 +1,33 @@
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 SIDEBAR_STATE_KEY = "navigation/state";
4
+ const PINNED_ITEMS_KEY = "navigation/pinned/items";
5
5
  export const SidebarProvider = Component => {
6
6
  return function SidebarProvider(props) {
7
- const rawState = useLocalStorageValue(SIDEBAR_STATE_KEY);
7
+ const rawPinnedItems = useLocalStorageValue(PINNED_ITEMS_KEY);
8
8
  const {
9
9
  set
10
10
  } = useLocalStorage();
11
- const state = useMemo(() => {
11
+ const pinnedItems = useMemo(() => {
12
12
  try {
13
- if (typeof rawState === "object" && rawState !== null) {
14
- return rawState;
13
+ if (Array.isArray(rawPinnedItems)) {
14
+ return rawPinnedItems;
15
15
  }
16
- if (typeof rawState === "string") {
17
- return JSON.parse(rawState);
16
+ if (typeof rawPinnedItems === "string") {
17
+ const parsed = JSON.parse(rawPinnedItems);
18
+ return Array.isArray(parsed) ? parsed : [];
18
19
  }
19
20
  } catch {
20
21
  // Ignore parse errors
21
22
  }
22
- return undefined;
23
- }, [rawState]);
24
- const onChangeState = newState => {
25
- set(SIDEBAR_STATE_KEY, JSON.stringify(newState));
23
+ return [];
24
+ }, [rawPinnedItems]);
25
+ const setPinnedItems = items => {
26
+ set(PINNED_ITEMS_KEY, JSON.stringify(items));
26
27
  };
27
28
  return /*#__PURE__*/React.createElement(AdminUiSidebar, {
28
- state: state,
29
- onChangeState: onChangeState
29
+ pinnedItems: pinnedItems,
30
+ onChangePinnedItems: setPinnedItems
30
31
  }, /*#__PURE__*/React.createElement(Component, props));
31
32
  };
32
33
  };
@@ -1 +1 @@
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":[]}
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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-admin-ui",
3
- "version": "0.0.0-unstable.61c048f412",
3
+ "version": "0.0.0-unstable.6f45466a1d",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -11,10 +11,10 @@
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
13
  "@types/react": "18.2.79",
14
- "@webiny/admin-ui": "0.0.0-unstable.61c048f412",
15
- "@webiny/app": "0.0.0-unstable.61c048f412",
16
- "@webiny/app-admin": "0.0.0-unstable.61c048f412",
17
- "@webiny/icons": "0.0.0-unstable.61c048f412",
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
18
  "react": "18.2.0",
19
19
  "react-dom": "18.2.0",
20
20
  "react-helmet": "6.1.0"
@@ -22,7 +22,7 @@
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.61c048f412",
25
+ "@webiny/build-tools": "0.0.0-unstable.6f45466a1d",
26
26
  "babel-plugin-named-asset-import": "1.0.0-next.fb6e6f70",
27
27
  "rimraf": "6.1.2",
28
28
  "typescript": "5.9.3"
@@ -36,5 +36,5 @@
36
36
  "removeViewBox": false
37
37
  }
38
38
  },
39
- "gitHead": "61c048f412d6b4aa70c1d105aab21e3fa69730f3"
39
+ "gitHead": "6f45466a1d9fb94f6156923501eb90ac303b81a5"
40
40
  }