@noya-app/noya-multiplayer-react 0.1.48 → 0.1.49

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/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ import { ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateMana
3
3
  export * from '@noya-app/state-manager';
4
4
  import React, { SetStateAction } from 'react';
5
5
  import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
6
- import * as _noya_app_noya_designsystem from '@noya-app/noya-designsystem';
6
+ import { MenuItem } from '@noya-app/noya-designsystem';
7
7
 
8
8
  type Point = {
9
9
  x: number;
@@ -116,11 +116,20 @@ interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT ex
116
116
  initialState?: S;
117
117
  fallback?: React.ReactNode;
118
118
  }
119
+ declare function useAnyNoyaStateContext(): {
120
+ noyaManager: NoyaManager<any, any, any, any>;
121
+ theme: AppTheme;
122
+ viewType: AppViewType;
123
+ };
124
+ declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
125
+ declare function useColorScheme(): AppTheme;
126
+ declare function useViewType(): AppViewType;
119
127
  declare function useAssets(): _noya_app_state_manager.Asset[];
120
128
  declare function useAsset(id: string | undefined): _noya_app_state_manager.Asset | undefined;
121
129
  declare function useAssetManager(): {
122
130
  create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.Asset>;
123
131
  delete: (id: string) => Promise<void>;
132
+ isInitialized: boolean;
124
133
  };
125
134
  declare function useAIManager(): _noya_app_state_manager.AIManager;
126
135
  declare function useSecretManager(): _noya_app_state_manager.SecretManager;
@@ -159,11 +168,18 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
159
168
  };
160
169
  useStateManager: () => MultiplayerStateManager<Static<Schema>, M>;
161
170
  useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
162
- useLeftMenuItems: () => _noya_app_noya_designsystem.RegularMenuItem<MenuT>[];
163
- useRightMenuItems: () => _noya_app_noya_designsystem.RegularMenuItem<MenuT>[];
171
+ useLeftMenuItems: () => MenuItem<MenuT>[];
172
+ useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
173
+ useRightMenuItems: () => MenuItem<MenuT>[];
174
+ useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
164
175
  useHandleMenuItem: (callback: (type: MenuT) => void) => void;
165
176
  useOnSelectMenuItemCallback: () => (type: MenuT) => void;
166
177
  useNoyaManager: () => NoyaManager<Static<Schema>, M, E, MenuT>;
178
+ useMenu: (options: {
179
+ leftMenuItems?: MenuItem<MenuT>[];
180
+ rightMenuItems?: MenuItem<MenuT>[];
181
+ onSelectMenuItem?: (type: MenuT) => void;
182
+ }) => void;
167
183
  };
168
184
 
169
185
  declare function useObservable<T>(observable: Observable<T>): T;
@@ -208,4 +224,4 @@ declare class WebSocketConnection<State> {
208
224
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
209
225
  }
210
226
 
211
- export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAsset, useAssetManager, useAssets, useConnectedUsersManager, useCurrentUserId, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useSecret, useSecretManager, useSecrets, useSyncStateManager, useWorkflowManager };
227
+ export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useSecret, useSecretManager, useSecrets, useSyncStateManager, useViewType, useWorkflowManager };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateMana
3
3
  export * from '@noya-app/state-manager';
4
4
  import React, { SetStateAction } from 'react';
5
5
  import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
6
- import * as _noya_app_noya_designsystem from '@noya-app/noya-designsystem';
6
+ import { MenuItem } from '@noya-app/noya-designsystem';
7
7
 
8
8
  type Point = {
9
9
  x: number;
@@ -116,11 +116,20 @@ interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT ex
116
116
  initialState?: S;
117
117
  fallback?: React.ReactNode;
118
118
  }
119
+ declare function useAnyNoyaStateContext(): {
120
+ noyaManager: NoyaManager<any, any, any, any>;
121
+ theme: AppTheme;
122
+ viewType: AppViewType;
123
+ };
124
+ declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
125
+ declare function useColorScheme(): AppTheme;
126
+ declare function useViewType(): AppViewType;
119
127
  declare function useAssets(): _noya_app_state_manager.Asset[];
120
128
  declare function useAsset(id: string | undefined): _noya_app_state_manager.Asset | undefined;
121
129
  declare function useAssetManager(): {
122
130
  create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_state_manager.Asset>;
123
131
  delete: (id: string) => Promise<void>;
132
+ isInitialized: boolean;
124
133
  };
125
134
  declare function useAIManager(): _noya_app_state_manager.AIManager;
126
135
  declare function useSecretManager(): _noya_app_state_manager.SecretManager;
@@ -159,11 +168,18 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
159
168
  };
160
169
  useStateManager: () => MultiplayerStateManager<Static<Schema>, M>;
161
170
  useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
162
- useLeftMenuItems: () => _noya_app_noya_designsystem.RegularMenuItem<MenuT>[];
163
- useRightMenuItems: () => _noya_app_noya_designsystem.RegularMenuItem<MenuT>[];
171
+ useLeftMenuItems: () => MenuItem<MenuT>[];
172
+ useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
173
+ useRightMenuItems: () => MenuItem<MenuT>[];
174
+ useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
164
175
  useHandleMenuItem: (callback: (type: MenuT) => void) => void;
165
176
  useOnSelectMenuItemCallback: () => (type: MenuT) => void;
166
177
  useNoyaManager: () => NoyaManager<Static<Schema>, M, E, MenuT>;
178
+ useMenu: (options: {
179
+ leftMenuItems?: MenuItem<MenuT>[];
180
+ rightMenuItems?: MenuItem<MenuT>[];
181
+ onSelectMenuItem?: (type: MenuT) => void;
182
+ }) => void;
167
183
  };
168
184
 
169
185
  declare function useObservable<T>(observable: Observable<T>): T;
@@ -208,4 +224,4 @@ declare class WebSocketConnection<State> {
208
224
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
209
225
  }
210
226
 
211
- export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAsset, useAssetManager, useAssets, useConnectedUsersManager, useCurrentUserId, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useSecret, useSecretManager, useSecrets, useSyncStateManager, useWorkflowManager };
227
+ export { AnyEphemeralUserDataManagerContext, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useSecret, useSecretManager, useSecrets, useSyncStateManager, useViewType, useWorkflowManager };
package/dist/index.js CHANGED
@@ -44,9 +44,12 @@ __export(src_exports, {
44
44
  parseAppDataParameter: () => parseAppDataParameter,
45
45
  useAIManager: () => useAIManager,
46
46
  useAnyEphemeralUserData: () => useAnyEphemeralUserData,
47
+ useAnyNoyaManager: () => useAnyNoyaManager,
48
+ useAnyNoyaStateContext: () => useAnyNoyaStateContext,
47
49
  useAsset: () => useAsset,
48
50
  useAssetManager: () => useAssetManager,
49
51
  useAssets: () => useAssets,
52
+ useColorScheme: () => useColorScheme,
50
53
  useConnectedUsersManager: () => useConnectedUsersManager,
51
54
  useCurrentUserId: () => useCurrentUserId,
52
55
  useIsInitialized: () => useIsInitialized,
@@ -59,6 +62,7 @@ __export(src_exports, {
59
62
  useSecretManager: () => useSecretManager,
60
63
  useSecrets: () => useSecrets,
61
64
  useSyncStateManager: () => useSyncStateManager,
65
+ useViewType: () => useViewType,
62
66
  useWorkflowManager: () => useWorkflowManager
63
67
  });
64
68
  module.exports = __toCommonJS(src_exports);
@@ -1400,69 +1404,81 @@ function useAnyNoyaStateContext() {
1400
1404
  }
1401
1405
  return value;
1402
1406
  }
1407
+ function useAnyNoyaManager() {
1408
+ const { noyaManager } = useAnyNoyaStateContext();
1409
+ return noyaManager;
1410
+ }
1411
+ function useColorScheme() {
1412
+ const { theme } = useAnyNoyaStateContext();
1413
+ return theme;
1414
+ }
1415
+ function useViewType() {
1416
+ const { viewType } = useAnyNoyaStateContext();
1417
+ return viewType;
1418
+ }
1403
1419
  function useAssets() {
1404
- const { assetManager } = useAnyNoyaStateContext();
1405
- return useObservable(assetManager.assets$);
1420
+ const { noyaManager } = useAnyNoyaStateContext();
1421
+ return useObservable(noyaManager.assetManager.assets$);
1406
1422
  }
1407
1423
  function useAsset(id) {
1408
- const { assetManager } = useAnyNoyaStateContext();
1424
+ const { noyaManager } = useAnyNoyaStateContext();
1409
1425
  const observable = (0, import_react8.useMemo)(
1410
- () => assetManager.assets$.map((assets) => assets.find((a) => a.id === id)),
1411
- [assetManager, id]
1426
+ () => noyaManager.assetManager.assets$.map(
1427
+ (assets) => assets.find((a) => a.id === id)
1428
+ ),
1429
+ [noyaManager, id]
1412
1430
  );
1413
1431
  return useObservable(observable);
1414
1432
  }
1415
1433
  function useAssetManager() {
1416
- const { assetManager } = useAnyNoyaStateContext();
1434
+ const { noyaManager } = useAnyNoyaStateContext();
1435
+ const isInitialized = useObservable(noyaManager.assetManager.isInitialized$);
1417
1436
  return (0, import_react8.useMemo)(
1418
1437
  () => ({
1419
- create: assetManager.create,
1420
- delete: assetManager.delete
1438
+ create: noyaManager.assetManager.create,
1439
+ delete: noyaManager.assetManager.delete,
1440
+ isInitialized
1421
1441
  }),
1422
- [assetManager]
1442
+ [noyaManager, isInitialized]
1423
1443
  );
1424
1444
  }
1425
1445
  function useAIManager() {
1426
- const { aiManager } = useAnyNoyaStateContext();
1427
- return aiManager;
1446
+ const { noyaManager } = useAnyNoyaStateContext();
1447
+ return noyaManager.aiManager;
1428
1448
  }
1429
1449
  function useSecretManager() {
1430
- const { secretManager } = useAnyNoyaStateContext();
1431
- return secretManager;
1450
+ const { noyaManager } = useAnyNoyaStateContext();
1451
+ return noyaManager.secretManager;
1432
1452
  }
1433
1453
  function useSecrets() {
1434
- const { secretManager } = useAnyNoyaStateContext();
1435
- return useObservable(secretManager.secrets$);
1454
+ const { noyaManager } = useAnyNoyaStateContext();
1455
+ return useObservable(noyaManager.secretManager.secrets$);
1436
1456
  }
1437
1457
  function useSecret(name) {
1438
- const { secretManager } = useAnyNoyaStateContext();
1458
+ const { noyaManager } = useAnyNoyaStateContext();
1439
1459
  return useObservable(
1440
- secretManager.secrets$,
1460
+ noyaManager.secretManager.secrets$,
1441
1461
  (0, import_react8.useCallback)((secrets) => secrets.find((s) => s.name === name), [name])
1442
1462
  );
1443
1463
  }
1444
1464
  function useIsInitialized() {
1445
- const {
1446
- multiplayerStateManager: ms,
1447
- secretManager,
1448
- assetManager
1449
- } = useAnyNoyaStateContext();
1465
+ const { noyaManager, viewType } = useAnyNoyaStateContext();
1450
1466
  const isInitializedObservable = (0, import_react8.useMemo)(
1451
1467
  () => import_observable.Observable.combine(
1452
1468
  [
1453
- ms.isInitialized$,
1454
- secretManager.isInitialized$,
1455
- assetManager.isInitialized$
1469
+ ...viewType === "preview" ? [] : [noyaManager.multiplayerStateManager.isInitialized$],
1470
+ noyaManager.secretManager.isInitialized$,
1471
+ noyaManager.assetManager.isInitialized$
1456
1472
  ],
1457
1473
  (values) => values.every((v) => v)
1458
1474
  ),
1459
- [ms, secretManager, assetManager]
1475
+ [noyaManager, viewType]
1460
1476
  );
1461
1477
  return useObservable(isInitializedObservable);
1462
1478
  }
1463
1479
  function useWorkflowManager() {
1464
- const { workflowManager } = useAnyNoyaStateContext();
1465
- return workflowManager;
1480
+ const { noyaManager } = useAnyNoyaStateContext();
1481
+ return noyaManager.workflowManager;
1466
1482
  }
1467
1483
  var ConnectedUsersContext = (0, import_react8.createContext)(void 0);
1468
1484
  function useConnectedUsersManager() {
@@ -1494,12 +1510,23 @@ function createNoyaContext({
1494
1510
  initialState,
1495
1511
  ...options
1496
1512
  }) {
1497
- const [, , { noyaManager }] = useNoyaState(initialState, {
1498
- ...options,
1499
- schema,
1500
- mergeHistoryEntries
1501
- });
1502
- return /* @__PURE__ */ import_react8.default.createElement(AnyNoyaStateContext.Provider, { value: noyaManager }, /* @__PURE__ */ import_react8.default.createElement(
1513
+ const [, , { noyaManager, theme, viewType }] = useNoyaState(
1514
+ initialState,
1515
+ {
1516
+ ...options,
1517
+ schema,
1518
+ mergeHistoryEntries
1519
+ }
1520
+ );
1521
+ const contextValue = (0, import_react8.useMemo)(
1522
+ () => ({
1523
+ noyaManager,
1524
+ theme,
1525
+ viewType
1526
+ }),
1527
+ [noyaManager, theme, viewType]
1528
+ );
1529
+ return /* @__PURE__ */ import_react8.default.createElement(AnyNoyaStateContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react8.default.createElement(
1503
1530
  ConnectedUsersContext.Provider,
1504
1531
  {
1505
1532
  value: noyaManager.connectedUsersManager
@@ -1514,25 +1541,31 @@ function createNoyaContext({
1514
1541
  ));
1515
1542
  }
1516
1543
  function useValue(path, options) {
1517
- const { multiplayerStateManager: ms } = useAnyNoyaStateContext();
1544
+ const { noyaManager } = useAnyNoyaStateContext();
1518
1545
  let actualPath = typeof path === "function" || !path ? "" : path;
1519
1546
  const mappedObservable = (0, import_react8.useMemo)(() => {
1520
1547
  if (typeof path === "function") {
1521
- return ms.optimisticState$.map(path, { isEqual: options?.isEqual });
1548
+ return noyaManager.multiplayerStateManager.optimisticState$.map(path, {
1549
+ isEqual: options?.isEqual
1550
+ });
1522
1551
  }
1523
- return ms.optimisticState$;
1524
- }, [ms, path, options?.isEqual]);
1552
+ return noyaManager.multiplayerStateManager.optimisticState$;
1553
+ }, [noyaManager, path, options?.isEqual]);
1525
1554
  const value = useObservable(mappedObservable, actualPath);
1526
1555
  return value;
1527
1556
  }
1528
1557
  function useSetValue(path) {
1529
- const { multiplayerStateManager: ms } = useAnyNoyaStateContext();
1558
+ const { noyaManager } = useAnyNoyaStateContext();
1530
1559
  const setValue = (0, import_react8.useCallback)(
1531
1560
  (...args) => {
1532
1561
  const [metadata, value] = args.length === 2 ? args : [{}, args[0]];
1533
- ms.setStateAtPath(metadata, path ?? "", value);
1562
+ noyaManager.multiplayerStateManager.setStateAtPath(
1563
+ metadata,
1564
+ path ?? "",
1565
+ value
1566
+ );
1534
1567
  },
1535
- [ms, path]
1568
+ [noyaManager, path]
1536
1569
  );
1537
1570
  return setValue;
1538
1571
  }
@@ -1543,8 +1576,8 @@ function createNoyaContext({
1543
1576
  return [value, setValue];
1544
1577
  }
1545
1578
  function useStateManager() {
1546
- const { multiplayerStateManager: ms } = useAnyNoyaStateContext();
1547
- return ms;
1579
+ const { noyaManager } = useAnyNoyaStateContext();
1580
+ return noyaManager.multiplayerStateManager;
1548
1581
  }
1549
1582
  function useEphemeralUserDataManager() {
1550
1583
  const ephemeralUserData = (0, import_react8.useContext)(EphemeralUserDataManagerContext);
@@ -1556,16 +1589,32 @@ function createNoyaContext({
1556
1589
  return ephemeralUserData;
1557
1590
  }
1558
1591
  function useNoyaManager() {
1559
- return useAnyNoyaStateContext();
1592
+ return useAnyNoyaStateContext().noyaManager;
1560
1593
  }
1561
1594
  function useLeftMenuItems() {
1562
1595
  const { menuManager } = useNoyaManager();
1563
1596
  return useObservable(menuManager.leftMenuItems$);
1564
1597
  }
1598
+ function useSetLeftMenuItems(leftMenuItems) {
1599
+ const { menuManager } = useNoyaManager();
1600
+ (0, import_react8.useEffect)(() => {
1601
+ if (leftMenuItems) {
1602
+ menuManager.setLeftMenuItems(leftMenuItems);
1603
+ }
1604
+ }, [menuManager, leftMenuItems]);
1605
+ }
1565
1606
  function useRightMenuItems() {
1566
1607
  const { menuManager } = useNoyaManager();
1567
1608
  return useObservable(menuManager.rightMenuItems$);
1568
1609
  }
1610
+ function useSetRightMenuItems(rightMenuItems) {
1611
+ const { menuManager } = useNoyaManager();
1612
+ (0, import_react8.useEffect)(() => {
1613
+ if (rightMenuItems) {
1614
+ menuManager.setRightMenuItems(rightMenuItems);
1615
+ }
1616
+ }, [menuManager, rightMenuItems]);
1617
+ }
1569
1618
  function useHandleMenuItem(callback) {
1570
1619
  const { menuManager } = useNoyaManager();
1571
1620
  (0, import_react8.useEffect)(() => {
@@ -1576,6 +1625,14 @@ function createNoyaContext({
1576
1625
  const { menuManager } = useNoyaManager();
1577
1626
  return (0, import_react8.useCallback)((type) => menuManager.emit(type), [menuManager]);
1578
1627
  }
1628
+ function useMenu(options) {
1629
+ const { leftMenuItems, rightMenuItems, onSelectMenuItem } = options;
1630
+ useSetLeftMenuItems(leftMenuItems);
1631
+ useSetRightMenuItems(rightMenuItems);
1632
+ const noop = (0, import_react8.useCallback)(() => {
1633
+ }, []);
1634
+ useHandleMenuItem(onSelectMenuItem ?? noop);
1635
+ }
1579
1636
  return {
1580
1637
  Context: NoyaStateContext,
1581
1638
  Provider: NoyaStateProvider,
@@ -1585,10 +1642,13 @@ function createNoyaContext({
1585
1642
  useStateManager,
1586
1643
  useEphemeralUserDataManager,
1587
1644
  useLeftMenuItems,
1645
+ useSetLeftMenuItems,
1588
1646
  useRightMenuItems,
1647
+ useSetRightMenuItems,
1589
1648
  useHandleMenuItem,
1590
1649
  useOnSelectMenuItemCallback,
1591
- useNoyaManager
1650
+ useNoyaManager,
1651
+ useMenu
1592
1652
  };
1593
1653
  }
1594
1654
 
@@ -1702,9 +1762,12 @@ var WebSocketConnection = class {
1702
1762
  parseAppDataParameter,
1703
1763
  useAIManager,
1704
1764
  useAnyEphemeralUserData,
1765
+ useAnyNoyaManager,
1766
+ useAnyNoyaStateContext,
1705
1767
  useAsset,
1706
1768
  useAssetManager,
1707
1769
  useAssets,
1770
+ useColorScheme,
1708
1771
  useConnectedUsersManager,
1709
1772
  useCurrentUserId,
1710
1773
  useIsInitialized,
@@ -1717,6 +1780,7 @@ var WebSocketConnection = class {
1717
1780
  useSecretManager,
1718
1781
  useSecrets,
1719
1782
  useSyncStateManager,
1783
+ useViewType,
1720
1784
  useWorkflowManager,
1721
1785
  ...require("@noya-app/state-manager")
1722
1786
  });