Refactor desktop app into separate client and proxy apps

This commit is contained in:
Gregory Schier
2026-03-06 09:23:19 -08:00
parent e26705f016
commit 6915778c06
613 changed files with 1356 additions and 812 deletions

View File

@@ -0,0 +1,30 @@
import { useMemo } from 'react';
import type { SelectableTreeNode, TreeNode } from './common';
export function useSelectableItems<T extends { id: string }>(root: TreeNode<T>) {
return useMemo(() => {
const selectableItems: SelectableTreeNode<T>[] = [];
// Put requests and folders into a tree structure
const next = (node: TreeNode<T>, depth = 0) => {
if (node.children == null) {
return;
}
// Recurse to children
let selectableIndex = 0;
for (const child of node.children) {
selectableItems.push({
node: child,
index: selectableIndex++,
depth,
});
next(child, depth + 1);
}
};
next(root);
return selectableItems;
}, [root]);
}