Execute oxfmt (#1166)
Ran pnpm oxfmt . This should get the web repo aligned so that we can better enforce oxfmt going forward.
This commit is contained in:
@@ -15,7 +15,11 @@ export function useClient(): MeshClient {
|
||||
const direct = useContext(MeshContext);
|
||||
const registry = useContext(MeshRegistryContext);
|
||||
const active = useSignal(
|
||||
registry?.active ?? { value: undefined, peek: () => undefined, subscribe: () => () => {} },
|
||||
registry?.active ?? {
|
||||
value: undefined,
|
||||
peek: () => undefined,
|
||||
subscribe: () => () => {},
|
||||
},
|
||||
);
|
||||
const client = direct ?? active;
|
||||
if (!client) {
|
||||
|
||||
@@ -5,7 +5,9 @@ import { MeshRegistryContext } from "../provider/MeshRegistryContext.ts";
|
||||
export function useMeshRegistry(): MeshRegistry {
|
||||
const registry = useContext(MeshRegistryContext);
|
||||
if (!registry) {
|
||||
throw new Error("useMeshRegistry must be called inside a <MeshRegistryProvider>.");
|
||||
throw new Error(
|
||||
"useMeshRegistry must be called inside a <MeshRegistryProvider>.",
|
||||
);
|
||||
}
|
||||
return registry;
|
||||
}
|
||||
|
||||
@@ -6,8 +6,14 @@ import { useCallback, useSyncExternalStore } from "react";
|
||||
* returning. The selector should be stable; memoize it with `useCallback` in
|
||||
* the caller when it closes over changing values.
|
||||
*/
|
||||
export function useSignalValue<T, U>(sig: ReadonlySignal<T>, select: (value: T) => U): U {
|
||||
export function useSignalValue<T, U>(
|
||||
sig: ReadonlySignal<T>,
|
||||
select: (value: T) => U,
|
||||
): U {
|
||||
const getSnapshot = useCallback(() => select(sig.value), [sig, select]);
|
||||
const getServerSnapshot = useCallback(() => select(sig.peek()), [sig, select]);
|
||||
const getServerSnapshot = useCallback(
|
||||
() => select(sig.peek()),
|
||||
[sig, select],
|
||||
);
|
||||
return useSyncExternalStore(sig.subscribe, getSnapshot, getServerSnapshot);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,10 @@ export function useChat(channel: ChannelNumber): UseChatResult {
|
||||
const client = useClient();
|
||||
const sig = useMemo(() => client.chat.messages(channel), [client, channel]);
|
||||
const messages = useSignal(sig);
|
||||
const send = useCallback((input: SendTextInput) => client.chat.send(input), [client]);
|
||||
const send = useCallback(
|
||||
(input: SendTextInput) => client.chat.send(input),
|
||||
[client],
|
||||
);
|
||||
const loadOlder = useCallback(
|
||||
(before: Date, limit?: number) => {
|
||||
const conv: ConversationKey = { kind: "channel", channel };
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import type { ConversationKey, Message, SendTextError, SendTextInput } from "@meshtastic/sdk";
|
||||
import type {
|
||||
ConversationKey,
|
||||
Message,
|
||||
SendTextError,
|
||||
SendTextInput,
|
||||
} from "@meshtastic/sdk";
|
||||
import type { ResultType } from "better-result";
|
||||
import { useCallback, useMemo } from "react";
|
||||
import { useClient } from "../adapters/useClient.ts";
|
||||
@@ -20,7 +25,10 @@ export function useDirectChat(peer: number): UseDirectChatResult {
|
||||
const client = useClient();
|
||||
const sig = useMemo(() => client.chat.direct(peer), [client, peer]);
|
||||
const messages = useSignal(sig);
|
||||
const send = useCallback((input: SendTextInput) => client.chat.send(input), [client]);
|
||||
const send = useCallback(
|
||||
(input: SendTextInput) => client.chat.send(input),
|
||||
[client],
|
||||
);
|
||||
const loadOlder = useCallback(
|
||||
(before: Date, limit?: number) => {
|
||||
const conv: ConversationKey = { kind: "direct", peer };
|
||||
|
||||
@@ -15,13 +15,19 @@ export interface UseDraftResult {
|
||||
*/
|
||||
export function useDraft(conv: ConversationKey): UseDraftResult {
|
||||
const client = useClient();
|
||||
const sig = useMemo(() => client.chat.drafts.get(conv), [client, conv.kind, keyOf(conv)]);
|
||||
const sig = useMemo(
|
||||
() => client.chat.drafts.get(conv),
|
||||
[client, conv.kind, keyOf(conv)],
|
||||
);
|
||||
const text = useSignal(sig);
|
||||
const setText = useCallback(
|
||||
(value: string) => client.chat.drafts.set(conv, value),
|
||||
[client, conv],
|
||||
);
|
||||
const clear = useCallback(() => client.chat.drafts.clear(conv), [client, conv]);
|
||||
const clear = useCallback(
|
||||
() => client.chat.drafts.clear(conv),
|
||||
[client, conv],
|
||||
);
|
||||
return { text, setText, clear };
|
||||
}
|
||||
|
||||
|
||||
@@ -5,11 +5,13 @@ import { useClient } from "../adapters/useClient.ts";
|
||||
export function useFavoriteNode() {
|
||||
const client = useClient();
|
||||
const favorite = useCallback(
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> => client.nodes.favorite(nodeNum),
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> =>
|
||||
client.nodes.favorite(nodeNum),
|
||||
[client],
|
||||
);
|
||||
const unfavorite = useCallback(
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> => client.nodes.unfavorite(nodeNum),
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> =>
|
||||
client.nodes.unfavorite(nodeNum),
|
||||
[client],
|
||||
);
|
||||
return { favorite, unfavorite };
|
||||
|
||||
@@ -5,11 +5,13 @@ import { useClient } from "../adapters/useClient.ts";
|
||||
export function useIgnoreNode() {
|
||||
const client = useClient();
|
||||
const ignore = useCallback(
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> => client.nodes.ignore(nodeNum),
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> =>
|
||||
client.nodes.ignore(nodeNum),
|
||||
[client],
|
||||
);
|
||||
const unignore = useCallback(
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> => client.nodes.unignore(nodeNum),
|
||||
(nodeNum: number): Promise<ResultType<number, Error>> =>
|
||||
client.nodes.unignore(nodeNum),
|
||||
[client],
|
||||
);
|
||||
return { ignore, unignore };
|
||||
|
||||
@@ -4,5 +4,7 @@ import { useSignalValue } from "../adapters/useSignalValue.ts";
|
||||
|
||||
export function useNode(nodeNum: number): Node | undefined {
|
||||
const client = useClient();
|
||||
return useSignalValue(client.nodes.list, (list) => list.find((n) => n.num === nodeNum));
|
||||
return useSignalValue(client.nodes.list, (list) =>
|
||||
list.find((n) => n.num === nodeNum),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,5 +4,7 @@ import { useSignalValue } from "../adapters/useSignalValue.ts";
|
||||
|
||||
export function usePosition(nodeNum: number): Position | undefined {
|
||||
const client = useClient();
|
||||
return useSignalValue(client.position.list, (list) => list.find((p) => p.nodeNum === nodeNum));
|
||||
return useSignalValue(client.position.list, (list) =>
|
||||
list.find((p) => p.nodeNum === nodeNum),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,8 +10,14 @@ export interface UseTelemetryResult {
|
||||
|
||||
export function useTelemetry(nodeNum: number): UseTelemetryResult {
|
||||
const client = useClient();
|
||||
const latestSig = useMemo(() => client.telemetry.latest(nodeNum), [client, nodeNum]);
|
||||
const historySig = useMemo(() => client.telemetry.history(nodeNum), [client, nodeNum]);
|
||||
const latestSig = useMemo(
|
||||
() => client.telemetry.latest(nodeNum),
|
||||
[client, nodeNum],
|
||||
);
|
||||
const historySig = useMemo(
|
||||
() => client.telemetry.history(nodeNum),
|
||||
[client, nodeNum],
|
||||
);
|
||||
const latest = useSignal(latestSig);
|
||||
const history = useSignal(historySig);
|
||||
return { latest, history };
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import type { MeshRegistry } from "@meshtastic/sdk";
|
||||
import { createContext } from "react";
|
||||
|
||||
export const MeshRegistryContext = createContext<MeshRegistry | undefined>(undefined);
|
||||
export const MeshRegistryContext = createContext<MeshRegistry | undefined>(
|
||||
undefined,
|
||||
);
|
||||
|
||||
@@ -12,6 +12,13 @@ export interface MeshRegistryProviderProps {
|
||||
* more than one connected device at a time. For single-client apps, prefer
|
||||
* `<MeshProvider client={...}>`.
|
||||
*/
|
||||
export function MeshRegistryProvider({ registry, children }: MeshRegistryProviderProps) {
|
||||
return <MeshRegistryContext.Provider value={registry}>{children}</MeshRegistryContext.Provider>;
|
||||
export function MeshRegistryProvider({
|
||||
registry,
|
||||
children,
|
||||
}: MeshRegistryProviderProps) {
|
||||
return (
|
||||
<MeshRegistryContext.Provider value={registry}>
|
||||
{children}
|
||||
</MeshRegistryContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user