add new dialogs & cleanup
This commit is contained in:
@@ -15,6 +15,7 @@ interface AppState {
|
||||
num: number;
|
||||
}[];
|
||||
rasterSources: RasterSource[];
|
||||
commandPaletteOpen: boolean;
|
||||
|
||||
setRasterSources: (sources: RasterSource[]) => void;
|
||||
addRasterSource: (source: RasterSource) => void;
|
||||
@@ -23,6 +24,7 @@ interface AppState {
|
||||
setSelectedDevice: (deviceId: number) => void;
|
||||
addDevice: (device: { id: number; num: number }) => void;
|
||||
removeDevice: (deviceId: number) => void;
|
||||
setCommandPaletteOpen: (open: boolean) => void;
|
||||
}
|
||||
|
||||
export const useAppStore = create<AppState>()((set) => ({
|
||||
@@ -30,6 +32,7 @@ export const useAppStore = create<AppState>()((set) => ({
|
||||
devices: [],
|
||||
currentPage: "messages",
|
||||
rasterSources: [],
|
||||
commandPaletteOpen: false,
|
||||
|
||||
setRasterSources: (sources: RasterSource[]) => {
|
||||
set(
|
||||
@@ -52,7 +55,6 @@ export const useAppStore = create<AppState>()((set) => ({
|
||||
})
|
||||
);
|
||||
},
|
||||
|
||||
setSelectedDevice: (deviceId) =>
|
||||
set(() => ({
|
||||
selectedDevice: deviceId
|
||||
@@ -64,5 +66,12 @@ export const useAppStore = create<AppState>()((set) => ({
|
||||
removeDevice: (deviceId) =>
|
||||
set((state) => ({
|
||||
devices: state.devices.filter((device) => device.id !== deviceId)
|
||||
}))
|
||||
})),
|
||||
setCommandPaletteOpen: (open: boolean) => {
|
||||
set(
|
||||
produce<AppState>((draft) => {
|
||||
draft.commandPaletteOpen = open;
|
||||
})
|
||||
);
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -56,6 +56,8 @@ export interface Device {
|
||||
regionUnset: boolean;
|
||||
currentMetrics: Protobuf.DeviceMetrics;
|
||||
QRDialogOpen: boolean;
|
||||
shutdownDialogOpen: boolean;
|
||||
rebootDialogOpen: boolean;
|
||||
pendingSettingsChanges: boolean;
|
||||
|
||||
setReady(ready: boolean): void;
|
||||
@@ -79,6 +81,8 @@ export interface Device {
|
||||
addDeviceMetadataMessage: (metadata: Types.DeviceMetadataPacket) => void;
|
||||
ackMessage: (channelIndex: number, messageId: number) => void;
|
||||
setQRDialogOpen: (open: boolean) => void;
|
||||
setShutdownDialogOpen: (open: boolean) => void;
|
||||
setRebootDialogOpen: (open: boolean) => void;
|
||||
}
|
||||
|
||||
export interface DeviceState {
|
||||
@@ -115,6 +119,8 @@ export const useDeviceStore = create<DeviceState>((set, get) => ({
|
||||
regionUnset: false,
|
||||
currentMetrics: Protobuf.DeviceMetrics.create(),
|
||||
QRDialogOpen: false,
|
||||
shutdownDialogOpen: false,
|
||||
rebootDialogOpen: false,
|
||||
pendingSettingsChanges: false,
|
||||
|
||||
setReady: (ready: boolean) => {
|
||||
@@ -539,6 +545,26 @@ export const useDeviceStore = create<DeviceState>((set, get) => ({
|
||||
}
|
||||
})
|
||||
);
|
||||
},
|
||||
setShutdownDialogOpen: (open: boolean) => {
|
||||
set(
|
||||
produce<DeviceState>((draft) => {
|
||||
const device = draft.devices.get(id);
|
||||
if (device) {
|
||||
device.shutdownDialogOpen = open;
|
||||
}
|
||||
})
|
||||
);
|
||||
},
|
||||
setRebootDialogOpen: (open: boolean) => {
|
||||
set(
|
||||
produce<DeviceState>((draft) => {
|
||||
const device = draft.devices.get(id);
|
||||
if (device) {
|
||||
device.rebootDialogOpen = open;
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
@@ -45,24 +45,19 @@ export const subscribeAll = (
|
||||
});
|
||||
|
||||
connection.onMyNodeInfo.subscribe((nodeInfo) => {
|
||||
console.log("^^^^^^^ GOT MY NODE INFO");
|
||||
|
||||
device.setHardware(nodeInfo);
|
||||
myNodeNum = nodeInfo.myNodeNum;
|
||||
});
|
||||
|
||||
connection.onUserPacket.subscribe((user) => {
|
||||
console.log("^^^^^^^ GOT USER");
|
||||
device.addUser(user);
|
||||
});
|
||||
|
||||
connection.onPositionPacket.subscribe((position) => {
|
||||
console.log("^^^^^^^ GOT POSITION");
|
||||
device.addPosition(position);
|
||||
});
|
||||
|
||||
connection.onNodeInfoPacket.subscribe((nodeInfo) => {
|
||||
console.log("^^^^^^^ GOT NODE INFO");
|
||||
toast(`New Node Discovered: ${nodeInfo.data.user?.shortName ?? "UNK"}`, {
|
||||
icon: "🔎"
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user