diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index 63ed20ed..e56d391e 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -6,9 +6,7 @@ import { KeyBackupReminder } from "@components/KeyBackupReminder.tsx"; import { ErrorPage } from "@components/UI/ErrorPage.tsx"; import Footer from "@components/UI/Footer.tsx"; import { useTheme } from "@core/hooks/useTheme.ts"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDeviceStore } from "@core/stores/deviceStore.ts"; -import { SidebarProvider } from "@core/stores/sidebarStore.tsx"; +import { SidebarProvider, useAppStore, useDeviceStore } from "@core/stores"; import { Dashboard } from "@pages/Dashboard/index.tsx"; import { Outlet } from "@tanstack/react-router"; import { TanStackRouterDevtools } from "@tanstack/react-router-devtools"; diff --git a/packages/web/src/DeviceWrapper.tsx b/packages/web/src/DeviceWrapper.tsx index 3b8c3802..28fd3be8 100644 --- a/packages/web/src/DeviceWrapper.tsx +++ b/packages/web/src/DeviceWrapper.tsx @@ -1,5 +1,4 @@ -import type { Device } from "@core/stores/deviceStore.ts"; -import { DeviceContext } from "@core/stores/deviceStore.ts"; +import { type Device, DeviceContext } from "@core/stores"; import type { ReactNode } from "react"; export interface DeviceWrapperProps { diff --git a/packages/web/src/components/CommandPalette/index.tsx b/packages/web/src/components/CommandPalette/index.tsx index 3c36f336..5c9753db 100644 --- a/packages/web/src/components/CommandPalette/index.tsx +++ b/packages/web/src/components/CommandPalette/index.tsx @@ -8,8 +8,7 @@ import { CommandList, } from "@components/UI/Command.tsx"; import { usePinnedItems } from "@core/hooks/usePinnedItems.ts"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDevice, useDeviceStore } from "@core/stores/deviceStore.ts"; +import { useAppStore, useDevice, useDeviceStore } from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import { useNavigate } from "@tanstack/react-router"; import { useCommandState } from "cmdk"; diff --git a/packages/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx b/packages/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx index 92d68531..6d50dbbc 100644 --- a/packages/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx +++ b/packages/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx @@ -6,7 +6,7 @@ import { DialogHeader, DialogTitle, } from "@components/UI/Dialog.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { useTranslation } from "react-i18next"; export interface ClientNotificationDialogProps { diff --git a/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx b/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx index 28dfbd76..581783d8 100644 --- a/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx +++ b/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx @@ -2,9 +2,9 @@ import { DeleteMessagesDialog } from "@components/Dialog/DeleteMessagesDialog/De import { fireEvent, render, screen } from "@testing-library/react"; import { beforeEach, describe, expect, it, vi } from "vitest"; // Ensure the path is correct for import -import { useMessageStore } from "../../../core/stores/messageStore/index.ts"; +import { useMessageStore } from "@core/stores"; -vi.mock("@core/stores/messageStore", () => ({ +vi.mock("@core/stores", () => ({ useMessageStore: vi.fn(() => ({ deleteAllMessages: vi.fn(), })), diff --git a/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx b/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx index f8ea93f9..cdfe0d22 100644 --- a/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx +++ b/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx @@ -8,9 +8,9 @@ import { DialogHeader, DialogTitle, } from "@components/UI/Dialog.tsx"; +import { useMessageStore } from "@core/stores"; import { AlertTriangleIcon } from "lucide-react"; import { useTranslation } from "react-i18next"; -import { useMessageStore } from "../../../core/stores/messageStore/index.ts"; export interface DeleteMessagesDialogProps { open: boolean; diff --git a/packages/web/src/components/Dialog/DeviceNameDialog.tsx b/packages/web/src/components/Dialog/DeviceNameDialog.tsx index f4e51a2d..ee8b15ba 100644 --- a/packages/web/src/components/Dialog/DeviceNameDialog.tsx +++ b/packages/web/src/components/Dialog/DeviceNameDialog.tsx @@ -10,7 +10,7 @@ import { DialogHeader, DialogTitle, } from "@components/UI/Dialog.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { zodResolver } from "@hookform/resolvers/zod"; import { Protobuf } from "@meshtastic/core"; import { useForm } from "react-hook-form"; diff --git a/packages/web/src/components/Dialog/DialogManager.tsx b/packages/web/src/components/Dialog/DialogManager.tsx index 0af89f83..48af8290 100644 --- a/packages/web/src/components/Dialog/DialogManager.tsx +++ b/packages/web/src/components/Dialog/DialogManager.tsx @@ -10,7 +10,7 @@ import { RefreshKeysDialog } from "@components/Dialog/RefreshKeysDialog/RefreshK import { RemoveNodeDialog } from "@components/Dialog/RemoveNodeDialog.tsx"; import { ShutdownDialog } from "@components/Dialog/ShutdownDialog.tsx"; import { UnsafeRolesDialog } from "@components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; export const DialogManager = () => { const { channels, config, dialog, setDialogOpen } = useDevice(); diff --git a/packages/web/src/components/Dialog/ImportDialog.tsx b/packages/web/src/components/Dialog/ImportDialog.tsx index 67451a81..ed4192c1 100644 --- a/packages/web/src/components/Dialog/ImportDialog.tsx +++ b/packages/web/src/components/Dialog/ImportDialog.tsx @@ -12,7 +12,7 @@ import { import { Input } from "@components/UI/Input.tsx"; import { Label } from "@components/UI/Label.tsx"; import { Switch } from "@components/UI/Switch.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { Protobuf } from "@meshtastic/core"; import { toByteArray } from "base64-js"; import { useEffect, useState } from "react"; diff --git a/packages/web/src/components/Dialog/LocationResponseDialog.tsx b/packages/web/src/components/Dialog/LocationResponseDialog.tsx index 99670419..e501da25 100644 --- a/packages/web/src/components/Dialog/LocationResponseDialog.tsx +++ b/packages/web/src/components/Dialog/LocationResponseDialog.tsx @@ -1,4 +1,4 @@ -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import type { Protobuf, Types } from "@meshtastic/core"; import { numberToHexUnpadded } from "@noble/curves/abstract/utils"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx b/packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx index ba95bce9..a6b9104e 100644 --- a/packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx +++ b/packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx @@ -27,8 +27,7 @@ import { import { useFavoriteNode } from "@core/hooks/useFavoriteNode.ts"; import { useIgnoreNode } from "@core/hooks/useIgnoreNode.ts"; import { toast } from "@core/hooks/useToast.ts"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useAppStore, useDevice } from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import { Protobuf } from "@meshtastic/core"; import { numberToHexUnpadded } from "@noble/curves/abstract/utils"; diff --git a/packages/web/src/components/Dialog/PKIBackupDialog.tsx b/packages/web/src/components/Dialog/PKIBackupDialog.tsx index 0e327e75..a3f296af 100644 --- a/packages/web/src/components/Dialog/PKIBackupDialog.tsx +++ b/packages/web/src/components/Dialog/PKIBackupDialog.tsx @@ -11,7 +11,7 @@ import { fromByteArray } from "base64-js"; import { DownloadIcon, PrinterIcon } from "lucide-react"; import React from "react"; import { useTranslation } from "react-i18next"; -import { useDevice } from "../../core/stores/deviceStore.ts"; +import { useDevice } from "../../core/stores"; import { Button } from "../UI/Button.tsx"; export interface PkiBackupDialogProps { diff --git a/packages/web/src/components/Dialog/RebootDialog.test.tsx b/packages/web/src/components/Dialog/RebootDialog.test.tsx index 663ca5b6..85cf813c 100644 --- a/packages/web/src/components/Dialog/RebootDialog.test.tsx +++ b/packages/web/src/components/Dialog/RebootDialog.test.tsx @@ -1,4 +1,4 @@ -import { fireEvent, render, screen, waitFor } from "@testing-library/react"; +import { fireEvent, render, screen } from "@testing-library/react"; import type { ButtonHTMLAttributes, ClassAttributes, @@ -19,7 +19,7 @@ let mockConnection: { rebootOta: rebootOtaMock, }; -vi.mock("@core/stores/deviceStore.ts", () => ({ +vi.mock("@core/stores", () => ({ useDevice: () => ({ connection: mockConnection, }), diff --git a/packages/web/src/components/Dialog/RebootDialog.tsx b/packages/web/src/components/Dialog/RebootDialog.tsx index a0e6ad1f..42585781 100644 --- a/packages/web/src/components/Dialog/RebootDialog.tsx +++ b/packages/web/src/components/Dialog/RebootDialog.tsx @@ -1,4 +1,5 @@ import { Button } from "@components/UI/Button.tsx"; +import { Checkbox } from "@components/UI/Checkbox/index.tsx"; import { Dialog, DialogClose, @@ -10,11 +11,10 @@ import { import { Input } from "@components/UI/Input.tsx"; import { Label } from "@components/UI/Label.tsx"; import { Separator } from "@components/UI/Seperator.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { ClockIcon, OctagonXIcon, RefreshCwIcon } from "lucide-react"; import { useState } from "react"; import { useTranslation } from "react-i18next"; -import { Checkbox } from "../UI/Checkbox/index.tsx"; export interface RebootDialogProps { open: boolean; diff --git a/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx b/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx index 1fe8e508..6a87ccc5 100644 --- a/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx +++ b/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx @@ -1,11 +1,16 @@ -import { DeviceContext, useDeviceStore } from "@core/stores/deviceStore.ts"; +import { DeviceContext, useDeviceStore, useMessageStore } from "@core/stores"; import { render } from "@testing-library/react"; import { afterEach, beforeEach, expect, test, vi } from "vitest"; -import { useMessageStore } from "../../../core/stores/messageStore/index.ts"; import { RefreshKeysDialog } from "./RefreshKeysDialog.tsx"; import { useRefreshKeysDialog } from "./useRefreshKeysDialog.ts"; -vi.mock("@core/stores/messageStore"); +vi.mock("@core/stores", async () => { + const actual = (await vi.importActual("@core/stores")) as typeof import("@core/stores"); + return { + ...actual, + useMessageStore: vi.fn(), + }; +}); vi.mock("./useRefreshKeysDialog"); const mockUseMessageStore = vi.mocked(useMessageStore); diff --git a/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx b/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx index 5aa8122a..388f6361 100644 --- a/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx +++ b/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx @@ -6,8 +6,7 @@ import { DialogHeader, DialogTitle, } from "@components/UI/Dialog.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; -import { useMessageStore } from "@core/stores/messageStore/index.ts"; +import { useDevice, useMessageStore } from "@core/stores"; import { LockKeyholeOpenIcon } from "lucide-react"; import { useTranslation } from "react-i18next"; import { useRefreshKeysDialog } from "./useRefreshKeysDialog.ts"; diff --git a/packages/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts b/packages/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts index 54290612..822abdca 100644 --- a/packages/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts +++ b/packages/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts @@ -1,5 +1,4 @@ -import { useDevice } from "@core/stores/deviceStore.ts"; -import { useMessageStore } from "@core/stores/messageStore/index.ts"; +import { useDevice, useMessageStore } from "@core/stores"; import { useCallback } from "react"; export function useRefreshKeysDialog() { diff --git a/packages/web/src/components/Dialog/RemoveNodeDialog.tsx b/packages/web/src/components/Dialog/RemoveNodeDialog.tsx index afabe1bb..2bb7e181 100644 --- a/packages/web/src/components/Dialog/RemoveNodeDialog.tsx +++ b/packages/web/src/components/Dialog/RemoveNodeDialog.tsx @@ -9,9 +9,8 @@ import { DialogTitle, } from "@components/UI/Dialog.tsx"; import { Label } from "@components/UI/Label.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useAppStore, useDevice } from "@core/stores"; import { useTranslation } from "react-i18next"; -import { useAppStore } from "../../core/stores/appStore.ts"; export interface RemoveNodeDialogProps { open: boolean; diff --git a/packages/web/src/components/Dialog/ShutdownDialog.tsx b/packages/web/src/components/Dialog/ShutdownDialog.tsx index 9b849ccf..00ef46ad 100644 --- a/packages/web/src/components/Dialog/ShutdownDialog.tsx +++ b/packages/web/src/components/Dialog/ShutdownDialog.tsx @@ -8,7 +8,7 @@ import { DialogTitle, } from "@components/UI/Dialog.tsx"; import { Input } from "@components/UI/Input.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { ClockIcon, PowerIcon } from "lucide-react"; import { useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/Dialog/TracerouteResponseDialog.tsx b/packages/web/src/components/Dialog/TracerouteResponseDialog.tsx index decbac9b..4748e2d4 100644 --- a/packages/web/src/components/Dialog/TracerouteResponseDialog.tsx +++ b/packages/web/src/components/Dialog/TracerouteResponseDialog.tsx @@ -1,4 +1,4 @@ -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import type { Protobuf, Types } from "@meshtastic/core"; import { numberToHexUnpadded } from "@noble/curves/abstract/utils"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx b/packages/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx index 06c6cbe0..651f765b 100644 --- a/packages/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx +++ b/packages/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx @@ -10,7 +10,7 @@ import { DialogTitle, } from "@components/UI/Dialog.tsx"; import { Link } from "@components/UI/Typography/Link.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { eventBus } from "@core/utils/eventBus.ts"; import { useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts b/packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts index 98165c59..39623e08 100644 --- a/packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts +++ b/packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts @@ -1,4 +1,4 @@ -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { eventBus } from "@core/utils/eventBus.ts"; import { useCallback } from "react"; diff --git a/packages/web/src/components/Form/DynamicForm.tsx b/packages/web/src/components/Form/DynamicForm.tsx index abec2885..4ff7c6ec 100644 --- a/packages/web/src/components/Form/DynamicForm.tsx +++ b/packages/web/src/components/Form/DynamicForm.tsx @@ -7,7 +7,7 @@ import { FieldWrapper } from "@components/Form/FormWrapper.tsx"; import { Button } from "@components/UI/Button.tsx"; import { Heading } from "@components/UI/Typography/Heading.tsx"; import { Subtle } from "@components/UI/Typography/Subtle.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; +import { useAppStore } from "@core/stores"; import { dotPaths } from "@core/utils/dotPath.ts"; import { useEffect } from "react"; import { diff --git a/packages/web/src/components/KeyBackupReminder.tsx b/packages/web/src/components/KeyBackupReminder.tsx index 1edf3bca..6a556145 100644 --- a/packages/web/src/components/KeyBackupReminder.tsx +++ b/packages/web/src/components/KeyBackupReminder.tsx @@ -1,5 +1,5 @@ import { useBackupReminder } from "@core/hooks/useKeyBackupReminder.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { useTranslation } from "react-i18next"; export const KeyBackupReminder = () => { diff --git a/packages/web/src/components/PageComponents/Channel.tsx b/packages/web/src/components/PageComponents/Channel.tsx index 40eb43a6..409ee7b2 100644 --- a/packages/web/src/components/PageComponents/Channel.tsx +++ b/packages/web/src/components/PageComponents/Channel.tsx @@ -3,7 +3,7 @@ import { create } from "@bufbuild/protobuf"; import { PkiRegenerateDialog } from "@components/Dialog/PkiRegenerateDialog.tsx"; import { DynamicForm } from "@components/Form/DynamicForm.tsx"; import { useToast } from "@core/hooks/useToast.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { Protobuf } from "@meshtastic/core"; import { fromByteArray, toByteArray } from "base64-js"; import cryptoRandomString from "crypto-random-string"; diff --git a/packages/web/src/components/PageComponents/Config/Bluetooth.tsx b/packages/web/src/components/PageComponents/Config/Bluetooth.tsx index 140eec8f..2d4bad3d 100644 --- a/packages/web/src/components/PageComponents/Config/Bluetooth.tsx +++ b/packages/web/src/components/PageComponents/Config/Bluetooth.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/Config/Device/index.tsx b/packages/web/src/components/PageComponents/Config/Device/index.tsx index 90fe85ae..641e8b5d 100644 --- a/packages/web/src/components/PageComponents/Config/Device/index.tsx +++ b/packages/web/src/components/PageComponents/Config/Device/index.tsx @@ -9,7 +9,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/Config/Display.tsx b/packages/web/src/components/PageComponents/Config/Display.tsx index a80b1b78..f328f0f5 100644 --- a/packages/web/src/components/PageComponents/Config/Display.tsx +++ b/packages/web/src/components/PageComponents/Config/Display.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/Config/LoRa.tsx b/packages/web/src/components/PageComponents/Config/LoRa.tsx index abbd8d89..64029751 100644 --- a/packages/web/src/components/PageComponents/Config/LoRa.tsx +++ b/packages/web/src/components/PageComponents/Config/LoRa.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/Config/Network/index.tsx b/packages/web/src/components/PageComponents/Config/Network/index.tsx index 7bb39fd5..a1008865 100644 --- a/packages/web/src/components/PageComponents/Config/Network/index.tsx +++ b/packages/web/src/components/PageComponents/Config/Network/index.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { convertIntToIpAddress, diff --git a/packages/web/src/components/PageComponents/Config/Position.tsx b/packages/web/src/components/PageComponents/Config/Position.tsx index ed052af9..4d75411b 100644 --- a/packages/web/src/components/PageComponents/Config/Position.tsx +++ b/packages/web/src/components/PageComponents/Config/Position.tsx @@ -12,7 +12,7 @@ import { type FlagName, usePositionFlags, } from "@core/hooks/usePositionFlags.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useCallback } from "react"; diff --git a/packages/web/src/components/PageComponents/Config/Power.tsx b/packages/web/src/components/PageComponents/Config/Power.tsx index 61d4c680..0df07032 100644 --- a/packages/web/src/components/PageComponents/Config/Power.tsx +++ b/packages/web/src/components/PageComponents/Config/Power.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/Config/Security/Security.tsx b/packages/web/src/components/PageComponents/Config/Security/Security.tsx index d47e8bf7..404f5675 100644 --- a/packages/web/src/components/PageComponents/Config/Security/Security.tsx +++ b/packages/web/src/components/PageComponents/Config/Security/Security.tsx @@ -12,8 +12,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useAppStore, useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { getX25519PrivateKey, getX25519PublicKey } from "@core/utils/x25519.ts"; import { Protobuf } from "@meshtastic/core"; diff --git a/packages/web/src/components/PageComponents/Connect/BLE.tsx b/packages/web/src/components/PageComponents/Connect/BLE.tsx index 568e98e7..40a5d307 100644 --- a/packages/web/src/components/PageComponents/Connect/BLE.tsx +++ b/packages/web/src/components/PageComponents/Connect/BLE.tsx @@ -1,8 +1,6 @@ import { Mono } from "@components/generic/Mono.tsx"; import { Button } from "@components/UI/Button.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDeviceStore } from "@core/stores/deviceStore.ts"; -import { useMessageStore } from "@core/stores/messageStore/index.ts"; +import { useAppStore, useDeviceStore, useMessageStore } from "@core/stores"; import { subscribeAll } from "@core/subscriptions.ts"; import { randId } from "@core/utils/randId.ts"; import { MeshDevice } from "@meshtastic/core"; diff --git a/packages/web/src/components/PageComponents/Connect/HTTP.test.tsx b/packages/web/src/components/PageComponents/Connect/HTTP.test.tsx index b8262c08..c9bae27d 100644 --- a/packages/web/src/components/PageComponents/Connect/HTTP.test.tsx +++ b/packages/web/src/components/PageComponents/Connect/HTTP.test.tsx @@ -4,14 +4,12 @@ import { TransportHTTP } from "@meshtastic/transport-http"; import { fireEvent, render, screen, waitFor } from "@testing-library/react"; import { describe, expect, it, vi } from "vitest"; -vi.mock("@core/stores/appStore.ts", () => ({ +vi.mock("@core/stores", () => ({ useAppStore: vi.fn(() => ({ setSelectedDevice: vi.fn() })), -})); - -vi.mock("@core/stores/deviceStore.ts", () => ({ useDeviceStore: vi.fn(() => ({ addDevice: vi.fn(() => ({ addConnection: vi.fn() })), })), + useMessageStore: vi.fn() })); vi.mock("@core/utils/randId.ts", () => ({ diff --git a/packages/web/src/components/PageComponents/Connect/HTTP.tsx b/packages/web/src/components/PageComponents/Connect/HTTP.tsx index e3558648..566ef36d 100644 --- a/packages/web/src/components/PageComponents/Connect/HTTP.tsx +++ b/packages/web/src/components/PageComponents/Connect/HTTP.tsx @@ -4,9 +4,7 @@ import { Input } from "@components/UI/Input.tsx"; import { Label } from "@components/UI/Label.tsx"; import { Switch } from "@components/UI/Switch.tsx"; import { Link } from "@components/UI/Typography/Link.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDeviceStore } from "@core/stores/deviceStore.ts"; -import { useMessageStore } from "@core/stores/messageStore/index.ts"; +import { useAppStore, useDeviceStore, useMessageStore } from "@core/stores"; import { subscribeAll } from "@core/subscriptions.ts"; import { randId } from "@core/utils/randId.ts"; import { MeshDevice } from "@meshtastic/core"; diff --git a/packages/web/src/components/PageComponents/Connect/Serial.tsx b/packages/web/src/components/PageComponents/Connect/Serial.tsx index 17501361..2a671c7c 100644 --- a/packages/web/src/components/PageComponents/Connect/Serial.tsx +++ b/packages/web/src/components/PageComponents/Connect/Serial.tsx @@ -1,8 +1,6 @@ import { Mono } from "@components/generic/Mono.tsx"; import { Button } from "@components/UI/Button.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDeviceStore } from "@core/stores/deviceStore.ts"; -import { useMessageStore } from "@core/stores/messageStore/index.ts"; +import { useAppStore, useDeviceStore, useMessageStore } from "@core/stores"; import { subscribeAll } from "@core/subscriptions.ts"; import { randId } from "@core/utils/randId.ts"; import { MeshDevice } from "@meshtastic/core"; diff --git a/packages/web/src/components/PageComponents/Messages/MessageInput.tsx b/packages/web/src/components/PageComponents/Messages/MessageInput.tsx index dbfb6ebb..9afa506b 100644 --- a/packages/web/src/components/PageComponents/Messages/MessageInput.tsx +++ b/packages/web/src/components/PageComponents/Messages/MessageInput.tsx @@ -1,6 +1,6 @@ import { Button } from "@components/UI/Button.tsx"; import { Input } from "@components/UI/Input.tsx"; -import { useMessageStore } from "@core/stores/messageStore/index.ts"; +import { useMessageStore } from "@core/stores"; import type { Types } from "@meshtastic/core"; import { SendIcon } from "lucide-react"; import { startTransition, useState } from "react"; diff --git a/packages/web/src/components/PageComponents/Messages/MessageItem.tsx b/packages/web/src/components/PageComponents/Messages/MessageItem.tsx index d2a0d936..3a76ac55 100644 --- a/packages/web/src/components/PageComponents/Messages/MessageItem.tsx +++ b/packages/web/src/components/PageComponents/Messages/MessageItem.tsx @@ -6,11 +6,7 @@ import { TooltipProvider, TooltipTrigger, } from "@components/UI/Tooltip.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; -import { - MessageState, - useMessageStore, -} from "@core/stores/messageStore/index.ts"; +import { MessageState, useDevice, useMessageStore } from "@core/stores"; import type { Message } from "@core/stores/messageStore/types.ts"; import { cn } from "@core/utils/cn.ts"; import { type Protobuf, Types } from "@meshtastic/core"; diff --git a/packages/web/src/components/PageComponents/Messages/TraceRoute.test.tsx b/packages/web/src/components/PageComponents/Messages/TraceRoute.test.tsx index 8bab62bd..153b5b61 100644 --- a/packages/web/src/components/PageComponents/Messages/TraceRoute.test.tsx +++ b/packages/web/src/components/PageComponents/Messages/TraceRoute.test.tsx @@ -1,11 +1,11 @@ import { TraceRoute } from "@components/PageComponents/Messages/TraceRoute.tsx"; -import { mockDeviceStore } from "@core/stores/deviceStore.mock.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { mockDeviceStore } from "@core/stores/deviceStore/deviceStore.mock.ts"; +import { useDevice } from "@core/stores"; import { Protobuf } from "@meshtastic/core"; import { render, screen } from "@testing-library/react"; import { beforeEach, describe, expect, it, vi } from "vitest"; -vi.mock("@core/stores/deviceStore"); +vi.mock("@core/stores"); describe("TraceRoute", () => { const fromUser = { diff --git a/packages/web/src/components/PageComponents/Messages/TraceRoute.tsx b/packages/web/src/components/PageComponents/Messages/TraceRoute.tsx index caf176ee..2449d291 100644 --- a/packages/web/src/components/PageComponents/Messages/TraceRoute.tsx +++ b/packages/web/src/components/PageComponents/Messages/TraceRoute.tsx @@ -1,4 +1,4 @@ -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import type { Protobuf } from "@meshtastic/core"; import { numberToHexUnpadded } from "@noble/curves/abstract/utils"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx b/packages/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx index 60f7339d..a481ac0f 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Audio.tsx b/packages/web/src/components/PageComponents/ModuleConfig/Audio.tsx index 031aef04..aa76c897 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/Audio.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/Audio.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx b/packages/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx index 68fb50f6..05887155 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx b/packages/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx index 56c0410e..9745430b 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx b/packages/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx index 2f40a610..3e616719 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/MQTT.tsx b/packages/web/src/components/PageComponents/ModuleConfig/MQTT.tsx index a19e8e5f..a1750bd6 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/MQTT.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/MQTT.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx b/packages/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx index 7f9757a2..efbe4738 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx b/packages/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx index 471f44a9..875e5560 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx b/packages/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx index 273e4877..566c91cd 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Serial.tsx b/packages/web/src/components/PageComponents/ModuleConfig/Serial.tsx index 8dcc7ef4..824854c6 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/Serial.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/Serial.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx b/packages/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx index af0a6aed..48826ebc 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx b/packages/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx index 3483bab9..a007fb80 100644 --- a/packages/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx +++ b/packages/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx @@ -8,7 +8,7 @@ import { DynamicForm, type DynamicFormFormInit, } from "@components/Form/DynamicForm.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { deepCompareConfig } from "@core/utils/deepCompareConfig.ts"; import { Protobuf } from "@meshtastic/core"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/components/Sidebar.tsx b/packages/web/src/components/Sidebar.tsx index 8b7438d1..f86de173 100644 --- a/packages/web/src/components/Sidebar.tsx +++ b/packages/web/src/components/Sidebar.tsx @@ -2,10 +2,7 @@ import { SidebarButton } from "@components/UI/Sidebar/SidebarButton.tsx"; import { SidebarSection } from "@components/UI/Sidebar/SidebarSection.tsx"; import { Spinner } from "@components/UI/Spinner.tsx"; import { Subtle } from "@components/UI/Typography/Subtle.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; -import type { Page } from "@core/stores/deviceStore.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; -import { useSidebar } from "@core/stores/sidebarStore.tsx"; +import { type Page, useAppStore, useDevice, useSidebar } from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import { useLocation, useNavigate } from "@tanstack/react-router"; import { diff --git a/packages/web/src/components/UI/Sidebar/SidebarButton.tsx b/packages/web/src/components/UI/Sidebar/SidebarButton.tsx index 011d8889..c3cb5c28 100644 --- a/packages/web/src/components/UI/Sidebar/SidebarButton.tsx +++ b/packages/web/src/components/UI/Sidebar/SidebarButton.tsx @@ -1,5 +1,5 @@ import { Button } from "@components/UI/Button.tsx"; -import { useSidebar } from "@core/stores/sidebarStore.tsx"; +import { useSidebar } from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import type { LucideIcon } from "lucide-react"; import type React from "react"; diff --git a/packages/web/src/components/UI/Sidebar/SidebarSection.tsx b/packages/web/src/components/UI/Sidebar/SidebarSection.tsx index 2121094e..f0b52d4b 100644 --- a/packages/web/src/components/UI/Sidebar/SidebarSection.tsx +++ b/packages/web/src/components/UI/Sidebar/SidebarSection.tsx @@ -1,5 +1,5 @@ import { Heading } from "@components/UI/Typography/Heading.tsx"; -import { useSidebar } from "@core/stores/sidebarStore.tsx"; +import { useSidebar } from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import type React from "react"; diff --git a/packages/web/src/core/dto/PacketToMessageDTO.ts b/packages/web/src/core/dto/PacketToMessageDTO.ts index d968140e..f3ea0515 100644 --- a/packages/web/src/core/dto/PacketToMessageDTO.ts +++ b/packages/web/src/core/dto/PacketToMessageDTO.ts @@ -1,4 +1,4 @@ -import { MessageState, MessageType } from "@core/stores/messageStore/index.ts"; +import { MessageState, MessageType } from "@core/stores"; import type { Message } from "@core/stores/messageStore/types.ts"; import type { Types } from "@meshtastic/core"; diff --git a/packages/web/src/core/hooks/useFavoriteNode.test.ts b/packages/web/src/core/hooks/useFavoriteNode.test.ts index 840ad9b8..6b2c0591 100644 --- a/packages/web/src/core/hooks/useFavoriteNode.test.ts +++ b/packages/web/src/core/hooks/useFavoriteNode.test.ts @@ -15,7 +15,7 @@ const mockUpdateFavorite = vi.fn(); const mockGetNode = vi.fn(() => mockNode); const mockToast = vi.fn(); -vi.mock("@core/stores/deviceStore.ts", () => ({ +vi.mock("@core/stores", () => ({ useDevice: () => ({ updateFavorite: mockUpdateFavorite, getNode: mockGetNode, diff --git a/packages/web/src/core/hooks/useFavoriteNode.ts b/packages/web/src/core/hooks/useFavoriteNode.ts index 4f222462..d3358766 100644 --- a/packages/web/src/core/hooks/useFavoriteNode.ts +++ b/packages/web/src/core/hooks/useFavoriteNode.ts @@ -1,5 +1,5 @@ import { useToast } from "@core/hooks/useToast.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { useCallback } from "react"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/core/hooks/useIgnoreNode.test.ts b/packages/web/src/core/hooks/useIgnoreNode.test.ts index 4c0bf566..5a7904c8 100644 --- a/packages/web/src/core/hooks/useIgnoreNode.test.ts +++ b/packages/web/src/core/hooks/useIgnoreNode.test.ts @@ -15,7 +15,7 @@ const mockUpdateIgnore = vi.fn(); const mockGetNode = vi.fn(() => mockNode); const mockToast = vi.fn(); -vi.mock("@core/stores/deviceStore.ts", () => ({ +vi.mock("@core/stores", () => ({ useDevice: () => ({ updateIgnored: mockUpdateIgnore, getNode: mockGetNode, diff --git a/packages/web/src/core/hooks/useIgnoreNode.ts b/packages/web/src/core/hooks/useIgnoreNode.ts index 2a8473c3..05e6cdc7 100644 --- a/packages/web/src/core/hooks/useIgnoreNode.ts +++ b/packages/web/src/core/hooks/useIgnoreNode.ts @@ -1,5 +1,5 @@ import { useToast } from "@core/hooks/useToast.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { useCallback } from "react"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/core/hooks/useWaitForConfig.ts b/packages/web/src/core/hooks/useWaitForConfig.ts index a6b211a3..16108fec 100644 --- a/packages/web/src/core/hooks/useWaitForConfig.ts +++ b/packages/web/src/core/hooks/useWaitForConfig.ts @@ -2,7 +2,7 @@ import { useDevice, type ValidConfigType, type ValidModuleConfigType, -} from "@core/stores/deviceStore.ts"; +} from "@core/stores"; type UseWaitForConfigProps = | { configCase: ValidConfigType; moduleConfigCase?: never } diff --git a/packages/web/src/core/stores/appStore.ts b/packages/web/src/core/stores/appStore/index.ts similarity index 100% rename from packages/web/src/core/stores/appStore.ts rename to packages/web/src/core/stores/appStore/index.ts diff --git a/packages/web/src/core/stores/deviceStore.mock.ts b/packages/web/src/core/stores/deviceStore/deviceStore.mock.ts similarity index 98% rename from packages/web/src/core/stores/deviceStore.mock.ts rename to packages/web/src/core/stores/deviceStore/deviceStore.mock.ts index 8fa05670..63114812 100644 --- a/packages/web/src/core/stores/deviceStore.mock.ts +++ b/packages/web/src/core/stores/deviceStore/deviceStore.mock.ts @@ -1,6 +1,6 @@ import type { Protobuf } from "@meshtastic/core"; import { vi } from "vitest"; -import type { Device } from "./deviceStore.ts"; +import type { Device } from "./index.ts"; /** * You can spread this base mock in your tests and override only the diff --git a/packages/web/src/core/stores/deviceStore.ts b/packages/web/src/core/stores/deviceStore/index.ts similarity index 100% rename from packages/web/src/core/stores/deviceStore.ts rename to packages/web/src/core/stores/deviceStore/index.ts diff --git a/packages/web/src/core/stores/index.ts b/packages/web/src/core/stores/index.ts new file mode 100644 index 00000000..f10e6042 --- /dev/null +++ b/packages/web/src/core/stores/index.ts @@ -0,0 +1,22 @@ +export { useAppStore } from "@core/stores/appStore"; + +export { + type Device, + DeviceContext, + useDevice, + useDeviceStore, + type ValidConfigType, + type ValidModuleConfigType, +} from "@core/stores/deviceStore"; + +export { + MessageState, + type MessageStore, + MessageType, + useMessageStore, +} from "@core/stores/messageStore"; + +export { + SidebarProvider, + useSidebar, +} from "@core/stores/sidebarStore"; diff --git a/packages/web/src/core/stores/messageStore/messageStore.test.ts b/packages/web/src/core/stores/messageStore/messageStore.test.ts index d32427e8..5cc8a9ee 100644 --- a/packages/web/src/core/stores/messageStore/messageStore.test.ts +++ b/packages/web/src/core/stores/messageStore/messageStore.test.ts @@ -13,7 +13,7 @@ import type { MessageLogMap, } from "./types.ts"; -vi.mock("../storage/indexDB.ts", () => { +vi.mock("../utils/indexDB.ts", () => { const memoryStorage: Record = {}; return { storageWithMapSupport: { diff --git a/packages/web/src/core/stores/messageStore/types.ts b/packages/web/src/core/stores/messageStore/types.ts index b0176336..e242cffd 100644 --- a/packages/web/src/core/stores/messageStore/types.ts +++ b/packages/web/src/core/stores/messageStore/types.ts @@ -1,7 +1,4 @@ -import type { - MessageState, - MessageType, -} from "@core/stores/messageStore/index.ts"; +import type { MessageState, MessageType } from "@core/stores"; import type { Types } from "@meshtastic/core"; type NodeNum = number; diff --git a/packages/web/src/core/stores/sidebarStore.tsx b/packages/web/src/core/stores/sidebarStore/index.tsx similarity index 100% rename from packages/web/src/core/stores/sidebarStore.tsx rename to packages/web/src/core/stores/sidebarStore/index.tsx diff --git a/packages/web/src/core/stores/storage/indexDB.ts b/packages/web/src/core/stores/utils/indexDB.ts similarity index 100% rename from packages/web/src/core/stores/storage/indexDB.ts rename to packages/web/src/core/stores/utils/indexDB.ts diff --git a/packages/web/src/core/subscriptions.ts b/packages/web/src/core/subscriptions.ts index 0f685f4e..3415cc25 100644 --- a/packages/web/src/core/subscriptions.ts +++ b/packages/web/src/core/subscriptions.ts @@ -1,8 +1,7 @@ import { ensureDefaultUser } from "@core/dto/NodeNumToNodeInfoDTO.ts"; import PacketToMessageDTO from "@core/dto/PacketToMessageDTO.ts"; -import type { Device } from "@core/stores/deviceStore.ts"; +import { type Device, type MessageStore, MessageType } from "@core/stores"; import { type MeshDevice, Protobuf } from "@meshtastic/core"; -import { type MessageStore, MessageType } from "./stores/messageStore/index.ts"; export const subscribeAll = ( device: Device, diff --git a/packages/web/src/index.tsx b/packages/web/src/index.tsx index 64e1abe9..40cc7da1 100644 --- a/packages/web/src/index.tsx +++ b/packages/web/src/index.tsx @@ -6,8 +6,7 @@ import { Suspense } from "react"; import { createRoot } from "react-dom/client"; import "./i18n-config.ts"; import { router } from "@app/routes.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useMessageStore } from "@core/stores/messageStore/index.ts"; +import { useAppStore, useMessageStore } from "@core/stores"; import { type createRouter, RouterProvider } from "@tanstack/react-router"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/pages/Channels.tsx b/packages/web/src/pages/Channels.tsx index 03b565be..634ed190 100644 --- a/packages/web/src/pages/Channels.tsx +++ b/packages/web/src/pages/Channels.tsx @@ -7,7 +7,7 @@ import { TabsList, TabsTrigger, } from "@components/UI/Tabs.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import type { Protobuf } from "@meshtastic/core"; import { Types } from "@meshtastic/core"; import i18next from "i18next"; diff --git a/packages/web/src/pages/Config/DeviceConfig.tsx b/packages/web/src/pages/Config/DeviceConfig.tsx index 9e3b7436..b5db0a0f 100644 --- a/packages/web/src/pages/Config/DeviceConfig.tsx +++ b/packages/web/src/pages/Config/DeviceConfig.tsx @@ -13,7 +13,7 @@ import { TabsList, TabsTrigger, } from "@components/UI/Tabs.tsx"; -import { useDevice, type ValidConfigType } from "@core/stores/deviceStore.ts"; +import { useDevice, type ValidConfigType } from "@core/stores"; import { type ComponentType, Suspense, useMemo } from "react"; import type { UseFormReturn } from "react-hook-form"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/pages/Config/ModuleConfig.tsx b/packages/web/src/pages/Config/ModuleConfig.tsx index 9f871879..d4119ede 100644 --- a/packages/web/src/pages/Config/ModuleConfig.tsx +++ b/packages/web/src/pages/Config/ModuleConfig.tsx @@ -17,10 +17,7 @@ import { TabsList, TabsTrigger, } from "@components/UI/Tabs.tsx"; -import { - useDevice, - type ValidModuleConfigType, -} from "@core/stores/deviceStore.ts"; +import { useDevice, type ValidModuleConfigType } from "@core/stores"; import { type ComponentType, Suspense, useMemo } from "react"; import type { UseFormReturn } from "react-hook-form"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/pages/Config/index.tsx b/packages/web/src/pages/Config/index.tsx index 7ddc19da..12cd11bd 100644 --- a/packages/web/src/pages/Config/index.tsx +++ b/packages/web/src/pages/Config/index.tsx @@ -3,8 +3,7 @@ import { Sidebar } from "@components/Sidebar.tsx"; import { SidebarButton } from "@components/UI/Sidebar/SidebarButton.tsx"; import { SidebarSection } from "@components/UI/Sidebar/SidebarSection.tsx"; import { useToast } from "@core/hooks/useToast.ts"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useAppStore, useDevice } from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import { DeviceConfig } from "@pages/Config/DeviceConfig.tsx"; import { ModuleConfig } from "@pages/Config/ModuleConfig.tsx"; diff --git a/packages/web/src/pages/Dashboard/index.tsx b/packages/web/src/pages/Dashboard/index.tsx index cb4f0208..d7903efb 100644 --- a/packages/web/src/pages/Dashboard/index.tsx +++ b/packages/web/src/pages/Dashboard/index.tsx @@ -3,8 +3,7 @@ import { Button } from "@components/UI/Button.tsx"; import { Separator } from "@components/UI/Seperator.tsx"; import { Heading } from "@components/UI/Typography/Heading.tsx"; import { Subtle } from "@components/UI/Typography/Subtle.tsx"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDeviceStore } from "@core/stores/deviceStore.ts"; +import { useAppStore, useDeviceStore } from "@core/stores"; import { ListPlusIcon, PlusIcon, UsersIcon } from "lucide-react"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; diff --git a/packages/web/src/pages/Map/index.tsx b/packages/web/src/pages/Map/index.tsx index 0ea9a709..39d23dc2 100644 --- a/packages/web/src/pages/Map/index.tsx +++ b/packages/web/src/pages/Map/index.tsx @@ -6,7 +6,7 @@ import { import { BaseMap } from "@components/Map.tsx"; import { PageLayout } from "@components/PageLayout.tsx"; import { Sidebar } from "@components/Sidebar.tsx"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useDevice } from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import type { Protobuf } from "@meshtastic/core"; import { bbox, lineString } from "@turf/turf"; diff --git a/packages/web/src/pages/Messages.tsx b/packages/web/src/pages/Messages.tsx index 1f782700..af0c0a37 100644 --- a/packages/web/src/pages/Messages.tsx +++ b/packages/web/src/pages/Messages.tsx @@ -8,13 +8,13 @@ import { Input } from "@components/UI/Input.tsx"; import { SidebarButton } from "@components/UI/Sidebar/SidebarButton.tsx"; import { SidebarSection } from "@components/UI/Sidebar/SidebarSection.tsx"; import { useToast } from "@core/hooks/useToast.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; import { MessageState, MessageType, + useDevice, useMessageStore, -} from "@core/stores/messageStore/index.ts"; -import { useSidebar } from "@core/stores/sidebarStore.tsx"; + useSidebar, +} from "@core/stores"; import { cn } from "@core/utils/cn.ts"; import { randId } from "@core/utils/randId.ts"; import { Protobuf, Types } from "@meshtastic/core"; diff --git a/packages/web/src/pages/Nodes/index.tsx b/packages/web/src/pages/Nodes/index.tsx index 8240f565..6e06b024 100644 --- a/packages/web/src/pages/Nodes/index.tsx +++ b/packages/web/src/pages/Nodes/index.tsx @@ -17,8 +17,7 @@ import { Sidebar } from "@components/Sidebar.tsx"; import { Avatar } from "@components/UI/Avatar.tsx"; import { Input } from "@components/UI/Input.tsx"; import useLang from "@core/hooks/useLang.ts"; -import { useAppStore } from "@core/stores/appStore.ts"; -import { useDevice } from "@core/stores/deviceStore.ts"; +import { useAppStore, useDevice } from "@core/stores"; import { Protobuf, type Types } from "@meshtastic/core"; import { numberToHexUnpadded } from "@noble/curves/abstract/utils"; import { LockIcon, LockOpenIcon } from "lucide-react"; diff --git a/packages/web/src/routes.tsx b/packages/web/src/routes.tsx index b9f3d21a..8fc62cbf 100644 --- a/packages/web/src/routes.tsx +++ b/packages/web/src/routes.tsx @@ -1,6 +1,5 @@ import { DialogManager } from "@components/Dialog/DialogManager.tsx"; -import type { useAppStore } from "@core/stores/appStore.ts"; -import type { useMessageStore } from "@core/stores/messageStore/index.ts"; +import type { useAppStore, useMessageStore } from "@core/stores"; import ChannelsPage from "@pages/Channels.tsx"; import ConfigPage from "@pages/Config/index.tsx"; import { Dashboard } from "@pages/Dashboard/index.tsx";