@apia/dashboard-controller 5.0.3 → 5.0.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.
@@ -1,6 +1,9 @@
1
1
  import { useState, useCallback } from 'react';
2
+ import { ApiaApi } from '@apia/api';
3
+ import { handleAction } from '@apia/util';
2
4
  import { eventsController } from '../../../eventsController/eventsController.js';
3
5
  import { usePanelOnEvent } from '../../../eventsController/usePanelOnEvent.js';
6
+ import { firePanelAction } from '../../../actions/firePanelAction.js';
4
7
  import { usePanelIdentity } from '../../../common/usePanelIdentity.js';
5
8
 
6
9
  function changePanelFooter(panelId, footer) {
@@ -17,8 +20,33 @@ function usePanelFooter({
17
20
  const [footer, setFooter] = useState(
18
21
  initialData?.footer?.footer?.text || initialData?.footer?.footer?.force ? initialData?.footer?.footer : null
19
22
  );
20
- const handleFooterClick = useCallback((_) => {
21
- }, []);
23
+ const handleFooterClick = useCallback(
24
+ (ev) => {
25
+ if (!footer)
26
+ return;
27
+ handleAction(
28
+ {
29
+ callAjaxUrl: ({ url }) => {
30
+ void ApiaApi.post(url, { handleLoad: true });
31
+ },
32
+ openTab: ({ url, title }) => {
33
+ window.top?.tabsController.openTabByUrl(title, url);
34
+ },
35
+ fireAction(action, parameters) {
36
+ firePanelAction(identifier.panelId, action, parameters, {
37
+ requestConfig: { handleLoad: true }
38
+ });
39
+ },
40
+ fireEvent(eventType, payload) {
41
+ eventsController.fireEvent(identifier, eventType, payload);
42
+ }
43
+ },
44
+ ev,
45
+ footer
46
+ );
47
+ },
48
+ [footer, identifier]
49
+ );
22
50
  usePanelOnEvent(
23
51
  { eventType: "changeFooter", panelId: identifier.panelId },
24
52
  (ev) => {
@@ -1 +1 @@
1
- {"version":3,"file":"usePanelFooter.js","sources":["../../../../src/splash/panels/PanelContext/usePanelFooter.tsx"],"sourcesContent":["import {\r\n KeyboardEvent,\r\n MouseEvent,\r\n ReactNode,\r\n useCallback,\r\n useState,\r\n} from 'react';\r\nimport {\r\n TPanelEvent,\r\n TPanelIdentifier,\r\n eventsController,\r\n usePanelOnEvent,\r\n} from '../../../eventsController';\r\nimport { TFooter } from '../../../actions/usePanelActions';\r\nimport { usePanelIdentity } from '../../../common';\r\n\r\nexport function changePanelFooter(panelId: string, footer: TFooter | null) {\r\n eventsController.fireEvent(\r\n { panelId } as TPanelIdentifier,\r\n 'changeFooter',\r\n footer,\r\n );\r\n}\r\n\r\nexport type TUsePanelFooter = {\r\n footerContent?: ReactNode;\r\n footer: TFooter | null;\r\n handleFooterClick: (ev: MouseEvent | KeyboardEvent) => void;\r\n};\r\n\r\nexport function usePanelFooter({\r\n initialData,\r\n}: {\r\n initialData: unknown;\r\n}): TUsePanelFooter {\r\n const identifier = usePanelIdentity();\r\n\r\n const [footer, setFooter] = useState<TFooter | null>(\r\n (initialData as { footer: { footer: TFooter } })?.footer?.footer?.text ||\r\n (initialData as { footer: { footer: TFooter } })?.footer?.footer?.force\r\n ? (initialData as { footer: { footer: TFooter } })?.footer?.footer\r\n : null,\r\n );\r\n\r\n const handleFooterClick = useCallback((_: MouseEvent | KeyboardEvent) => {\r\n // if (footer) (identifier, ev, footer);\r\n }, []);\r\n\r\n usePanelOnEvent(\r\n { eventType: 'changeFooter', panelId: identifier.panelId },\r\n (ev: TPanelEvent<TFooter>) => {\r\n if (!ev.payload.text && !ev.payload.force) setFooter(null);\r\n else setFooter(ev.payload);\r\n },\r\n );\r\n\r\n return { footer, handleFooterClick };\r\n}\r\n"],"names":[],"mappings":";;;;;AAgBO,SAAS,iBAAA,CAAkB,SAAiB,MAAA,EAAwB;AACzE,EAAA,gBAAA,CAAiB,SAAA;AAAA,IACf,EAAE,OAAA,EAAQ;AAAA,IACV,cAAA;AAAA,IACA;AAAA,GACF;AACF;AAQO,SAAS,cAAA,CAAe;AAAA,EAC7B;AACF,CAAA,EAEoB;AAClB,EAAA,MAAM,aAAa,gBAAA,EAAiB;AAEpC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAAA;AAAA,IACzB,WAAA,EAAiD,MAAA,EAAQ,MAAA,EAAQ,IAAA,IAC/D,WAAA,EAAiD,QAAQ,MAAA,EAAQ,KAAA,GAC/D,WAAA,EAAiD,MAAA,EAAQ,MAAA,GAC1D;AAAA,GACN;AAEA,EAAA,MAAM,iBAAA,GAAoB,WAAA,CAAY,CAAC,CAAA,KAAkC;AAAA,GAEzE,EAAG,EAAE,CAAA;AAEL,EAAA,eAAA;AAAA,IACE,EAAE,SAAA,EAAW,cAAA,EAAgB,OAAA,EAAS,WAAW,OAAA,EAAQ;AAAA,IACzD,CAAC,EAAA,KAA6B;AAC5B,MAAA,IAAI,CAAC,EAAA,CAAG,OAAA,CAAQ,IAAA,IAAQ,CAAC,GAAG,OAAA,CAAQ,KAAA;AAAO,QAAA,SAAA,CAAU,IAAI,CAAA;AAAA;AACpD,QAAA,SAAA,CAAU,GAAG,OAAO,CAAA;AAAA;AAC3B,GACF;AAEA,EAAA,OAAO,EAAE,QAAQ,iBAAA,EAAkB;AACrC;;;;"}
1
+ {"version":3,"file":"usePanelFooter.js","sources":["../../../../src/splash/panels/PanelContext/usePanelFooter.tsx"],"sourcesContent":["import {\r\n KeyboardEvent,\r\n MouseEvent,\r\n ReactNode,\r\n useCallback,\r\n useState,\r\n} from 'react';\r\nimport { ApiaApi } from '@apia/api';\r\nimport { handleAction } from '@apia/util';\r\nimport {\r\n TPanelEvent,\r\n TPanelIdentifier,\r\n eventsController,\r\n usePanelOnEvent,\r\n} from '../../../eventsController';\r\nimport { firePanelAction } from '../../../actions/firePanelAction';\r\nimport { TFooter } from '../../../actions/usePanelActions';\r\nimport { usePanelIdentity } from '../../../common';\r\n\r\ninterface ITabsController {\r\n openTabByUrl(title: string, url: string): void;\r\n}\r\n\r\nexport function changePanelFooter(panelId: string, footer: TFooter | null) {\r\n eventsController.fireEvent(\r\n { panelId } as TPanelIdentifier,\r\n 'changeFooter',\r\n footer,\r\n );\r\n}\r\n\r\nexport type TUsePanelFooter = {\r\n footerContent?: ReactNode;\r\n footer: TFooter | null;\r\n handleFooterClick: (ev: MouseEvent | KeyboardEvent) => void;\r\n};\r\n\r\nexport function usePanelFooter({\r\n initialData,\r\n}: {\r\n initialData: unknown;\r\n}): TUsePanelFooter {\r\n const identifier = usePanelIdentity();\r\n\r\n const [footer, setFooter] = useState<TFooter | null>(\r\n (initialData as { footer: { footer: TFooter } })?.footer?.footer?.text ||\r\n (initialData as { footer: { footer: TFooter } })?.footer?.footer?.force\r\n ? (initialData as { footer: { footer: TFooter } })?.footer?.footer\r\n : null,\r\n );\r\n\r\n const handleFooterClick = useCallback(\r\n (ev: MouseEvent | KeyboardEvent) => {\r\n if (!footer) return;\r\n\r\n handleAction(\r\n {\r\n callAjaxUrl: ({ url }) => {\r\n void ApiaApi.post(url, { handleLoad: true });\r\n },\r\n openTab: ({ url, title }) => {\r\n (\r\n window.top as unknown as { tabsController: ITabsController }\r\n )?.tabsController.openTabByUrl(title, url);\r\n },\r\n fireAction(action, parameters) {\r\n firePanelAction(identifier.panelId, action, parameters, {\r\n requestConfig: { handleLoad: true },\r\n });\r\n },\r\n fireEvent(eventType, payload) {\r\n eventsController.fireEvent(identifier, eventType, payload);\r\n },\r\n },\r\n ev,\r\n footer,\r\n );\r\n },\r\n [footer, identifier],\r\n );\r\n\r\n usePanelOnEvent(\r\n { eventType: 'changeFooter', panelId: identifier.panelId },\r\n (ev: TPanelEvent<TFooter>) => {\r\n if (!ev.payload.text && !ev.payload.force) setFooter(null);\r\n else setFooter(ev.payload);\r\n },\r\n );\r\n\r\n return { footer, handleFooterClick };\r\n}\r\n"],"names":[],"mappings":";;;;;;;;AAuBO,SAAS,iBAAA,CAAkB,SAAiB,MAAA,EAAwB;AACzE,EAAA,gBAAA,CAAiB,SAAA;AAAA,IACf,EAAE,OAAA,EAAQ;AAAA,IACV,cAAA;AAAA,IACA;AAAA,GACF;AACF;AAQO,SAAS,cAAA,CAAe;AAAA,EAC7B;AACF,CAAA,EAEoB;AAClB,EAAA,MAAM,aAAa,gBAAA,EAAiB;AAEpC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAAA;AAAA,IACzB,WAAA,EAAiD,MAAA,EAAQ,MAAA,EAAQ,IAAA,IAC/D,WAAA,EAAiD,QAAQ,MAAA,EAAQ,KAAA,GAC/D,WAAA,EAAiD,MAAA,EAAQ,MAAA,GAC1D;AAAA,GACN;AAEA,EAAA,MAAM,iBAAA,GAAoB,WAAA;AAAA,IACxB,CAAC,EAAA,KAAmC;AAClC,MAAA,IAAI,CAAC,MAAA;AAAQ,QAAA;AAEb,MAAA,YAAA;AAAA,QACE;AAAA,UACE,WAAA,EAAa,CAAC,EAAE,GAAA,EAAI,KAAM;AACxB,YAAA,KAAK,QAAQ,IAAA,CAAK,GAAA,EAAK,EAAE,UAAA,EAAY,MAAM,CAAA;AAAA,WAC7C;AAAA,UACA,OAAA,EAAS,CAAC,EAAE,GAAA,EAAK,OAAM,KAAM;AAC3B,YACE,MAAA,CAAO,GAAA,EACN,cAAA,CAAe,YAAA,CAAa,OAAO,GAAG,CAAA;AAAA,WAC3C;AAAA,UACA,UAAA,CAAW,QAAQ,UAAA,EAAY;AAC7B,YAAA,eAAA,CAAgB,UAAA,CAAW,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY;AAAA,cACtD,aAAA,EAAe,EAAE,UAAA,EAAY,IAAA;AAAK,aACnC,CAAA;AAAA,WACH;AAAA,UACA,SAAA,CAAU,WAAW,OAAA,EAAS;AAC5B,YAAA,gBAAA,CAAiB,SAAA,CAAU,UAAA,EAAY,SAAA,EAAW,OAAO,CAAA;AAAA;AAC3D,SACF;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,QAAQ,UAAU;AAAA,GACrB;AAEA,EAAA,eAAA;AAAA,IACE,EAAE,SAAA,EAAW,cAAA,EAAgB,OAAA,EAAS,WAAW,OAAA,EAAQ;AAAA,IACzD,CAAC,EAAA,KAA6B;AAC5B,MAAA,IAAI,CAAC,EAAA,CAAG,OAAA,CAAQ,IAAA,IAAQ,CAAC,GAAG,OAAA,CAAQ,KAAA;AAAO,QAAA,SAAA,CAAU,IAAI,CAAA;AAAA;AACpD,QAAA,SAAA,CAAU,GAAG,OAAO,CAAA;AAAA;AAC3B,GACF;AAEA,EAAA,OAAO,EAAE,QAAQ,iBAAA,EAAkB;AACrC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apia/dashboard-controller",
3
- "version": "5.0.3",
3
+ "version": "5.0.6",
4
4
  "sideEffects": false,
5
5
  "author": "Alexis Leite <alexisleite@live.com>",
6
6
  "main": "dist/index.js",
@@ -15,12 +15,12 @@
15
15
  "libWatchForDashboards": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:dashboards"
16
16
  },
17
17
  "dependencies": {
18
- "@apia/api": "^5.0.3",
19
- "@apia/components": "^5.0.3",
20
- "@apia/icons": "^5.0.3",
21
- "@apia/store": "^5.0.3",
22
- "@apia/theme": "^5.0.3",
23
- "@apia/util": "^5.0.3",
18
+ "@apia/api": "^5.0.6",
19
+ "@apia/components": "^5.0.6",
20
+ "@apia/icons": "^5.0.6",
21
+ "@apia/store": "^5.0.6",
22
+ "@apia/theme": "^5.0.6",
23
+ "@apia/util": "^5.0.6",
24
24
  "@reduxjs/toolkit": "^1.9.3",
25
25
  "react-animate-height": "^3.2.2",
26
26
  "react-redux": "^8.0.5"
@@ -40,5 +40,5 @@
40
40
  "access": "public",
41
41
  "registry": "https://registry.npmjs.org/"
42
42
  },
43
- "gitHead": "f45775979bc2be3fdb389ab24155446758840c14"
43
+ "gitHead": "09595104ae2cdb68bdf406ebd5b53b2ed0b54ec0"
44
44
  }