@eleventheye/asui 2.12.7 → 2.12.8

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/README.md CHANGED
@@ -7,6 +7,9 @@ AS React UI Library (another one!)
7
7
 
8
8
  A small collection of `svg` icons that I tend to reuse in many of my projects.
9
9
 
10
+ ![ASUI Icons](./public/icons.png)
11
+
12
+
10
13
  #### Icon names
11
14
 
12
15
  AddItemIcon,
@@ -1 +1 @@
1
- {"version":3,"file":"ASNavBar.d.ts","sourceRoot":"","sources":["../../src/asnavbar/ASNavBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAA8B,MAAM,wBAAwB,CAAC;AAG1F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,eAAO,MAAM,yBAAyB,EAAE,oBAYvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,oBAYzC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,oBAUzC,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsFrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"ASNavBar.d.ts","sourceRoot":"","sources":["../../src/asnavbar/ASNavBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAA8B,MAAM,wBAAwB,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,eAAO,MAAM,yBAAyB,EAAE,oBAYvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,oBAYzC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,oBAUzC,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmFrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -7,7 +7,6 @@ const react_1 = require("react");
7
7
  const uuid_1 = require("uuid");
8
8
  const ASUI_types_1 = require("../apptypes/ASUI.types");
9
9
  const astheme_1 = tslib_1.__importDefault(require("../astheme"));
10
- const screenSizeHelpers_1 = require("../asutils/screenSizeHelpers");
11
10
  const desktop_1 = tslib_1.__importDefault(require("./desktop"));
12
11
  const mobile_1 = tslib_1.__importDefault(require("./mobile"));
13
12
  const styles_1 = require("./styles");
@@ -49,16 +48,12 @@ exports.defaultNavBarMWStyleOptions = {
49
48
  $padding: '0',
50
49
  };
51
50
  const ASNavBar = ({ className = '', navItems = [], selectedItemId = '', onItemSelected = () => undefined, theme = astheme_1.default, size = ASUI_types_1.ComponentSize.Medium, styleOptions = { ...exports.defaultNavBarStyleOptions }, dwStyleOptions = { ...exports.defaultNavBarDWStyleOptions }, mwStyleOptions = { ...exports.defaultNavBarMWStyleOptions }, }) => {
52
- const visitedCountRef = (0, react_1.useRef)(0);
53
- const [navBarComponentId] = (0, react_1.useState)(`asnavbar-${(0, uuid_1.v4)()}`);
51
+ const navBarRef = (0, react_1.useRef)(null);
52
+ const [uniqueID] = (0, react_1.useState)(() => (0, uuid_1.v4)());
53
+ const [navBarComponentId] = (0, react_1.useState)(`asnavbar-${uniqueID}`);
54
54
  const [isMobile, setIsMobile] = (0, react_1.useState)(false);
55
55
  const [selectedId, setSelectedId] = (0, react_1.useState)(selectedItemId);
56
56
  const { $mobileBreakpoint = 768, $disableTransitionsBetweenDisplayModes, $displayModeOverride } = styleOptions;
57
- (0, react_1.useEffect)(() => {
58
- const screenSize = (0, screenSizeHelpers_1.getScreenSize)();
59
- if (!screenSize)
60
- console.info(`Screen size detected: ${screenSize}`);
61
- }, []);
62
57
  (0, react_1.useEffect)(() => {
63
58
  setSelectedId(selectedItemId);
64
59
  }, [selectedItemId]);
@@ -71,23 +66,23 @@ const ASNavBar = ({ className = '', navItems = [], selectedItemId = '', onItemSe
71
66
  setIsMobile(window.innerWidth < $mobileBreakpoint);
72
67
  return;
73
68
  }
74
- visitedCountRef.current += 1;
75
- window.addEventListener('resize', () => {
76
- const width = window.innerWidth;
77
- setIsMobile(width < $mobileBreakpoint);
69
+ const observer = new ResizeObserver((entries) => {
70
+ for (const entry of entries) {
71
+ const width = entry.contentRect.width;
72
+ setIsMobile(width < $mobileBreakpoint);
73
+ }
78
74
  });
79
- setIsMobile(window.innerWidth < $mobileBreakpoint);
75
+ if (navBarRef.current) {
76
+ observer.observe(navBarRef.current);
77
+ }
80
78
  return () => {
81
- window.removeEventListener('resize', () => {
82
- const width = window.innerWidth;
83
- setIsMobile(width < $mobileBreakpoint);
84
- });
79
+ observer.disconnect();
85
80
  };
86
81
  }, [$disableTransitionsBetweenDisplayModes, $mobileBreakpoint, $displayModeOverride]);
87
- const onItemSelectedHandler = (itemId) => {
82
+ const onItemSelectedHandler = (0, react_1.useCallback)((itemId) => {
88
83
  setSelectedId(itemId);
89
84
  onItemSelected(itemId);
90
- };
91
- return ((0, jsx_runtime_1.jsx)(styles_1.ASNavBarStyled, { id: navBarComponentId, theme: theme, ...styleOptions, children: isMobile ? ((0, jsx_runtime_1.jsx)(mobile_1.default, { id: `asnavbar-mw-${(0, uuid_1.v4)()}`, className: className, navItems: navItems, selectedItemId: selectedId, onItemSelected: onItemSelectedHandler, theme: theme, size: size, styleOptions: mwStyleOptions })) : ((0, jsx_runtime_1.jsx)(desktop_1.default, { id: `asnavbar-dw-${(0, uuid_1.v4)()}`, className: className, navItems: navItems, selectedItemId: selectedId, onItemSelected: onItemSelectedHandler, theme: theme, size: size, styleOptions: dwStyleOptions })) }));
85
+ }, [onItemSelected]);
86
+ return ((0, jsx_runtime_1.jsx)(styles_1.ASNavBarStyled, { ref: navBarRef, id: navBarComponentId, theme: theme, ...exports.defaultNavBarStyleOptions, ...styleOptions, children: isMobile ? ((0, jsx_runtime_1.jsx)(mobile_1.default, { id: `asnavbar-mw-${uniqueID}`, className: className, navItems: navItems, selectedItemId: selectedId, onItemSelected: onItemSelectedHandler, theme: theme, size: size, styleOptions: { ...exports.defaultNavBarMWStyleOptions, ...mwStyleOptions } })) : ((0, jsx_runtime_1.jsx)(desktop_1.default, { id: `asnavbar-dw-${uniqueID}`, className: className, navItems: navItems, selectedItemId: selectedId, onItemSelected: onItemSelectedHandler, theme: theme, size: size, styleOptions: { ...exports.defaultNavBarDWStyleOptions, ...dwStyleOptions } })) }));
92
87
  };
93
88
  exports.default = ASNavBar;
@@ -1,2 +1,2 @@
1
- export declare const getScreenSize: () => "sml" | "med" | "lrg" | "xl" | "xxl" | undefined;
1
+ export declare const getScreenSize: () => "sml" | "med" | "lrg" | "xl" | "xxl" | "xxxl";
2
2
  //# sourceMappingURL=screenSizeHelpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenSizeHelpers.d.ts","sourceRoot":"","sources":["../../src/asutils/screenSizeHelpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,wDAQzB,CAAC"}
1
+ {"version":3,"file":"screenSizeHelpers.d.ts","sourceRoot":"","sources":["../../src/asutils/screenSizeHelpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,qDAUzB,CAAC"}
@@ -14,5 +14,6 @@ const getScreenSize = () => {
14
14
  return apptypes_1.ScreenSize.ExtraLarge;
15
15
  if (windowWidth < 1920)
16
16
  return apptypes_1.ScreenSize.ExtraExtraLarge;
17
+ return apptypes_1.ScreenSize.ExtraExtraExtraLarge;
17
18
  };
18
19
  exports.getScreenSize = getScreenSize;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eleventheye/asui",
3
- "version": "2.12.7",
3
+ "version": "2.12.8",
4
4
  "private": false,
5
5
  "description": "AS UI React Library by eleventheye (another one!)",
6
6
  "keywords": [
Binary file