mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-25 10:51:57 +01:00
Add .oxfmtignore to skip generated bindings and wasm-pack output. Add npm format script, update DEVELOPMENT.md for Vite+ toolchain, and format all non-generated files with oxfmt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
27 lines
861 B
TypeScript
27 lines
861 B
TypeScript
import type { Folder, GrpcRequest, HttpRequest, WebsocketRequest } from "@yaakapp-internal/models";
|
|
import { foldersAtom } from "@yaakapp-internal/models";
|
|
import { useAtomValue } from "jotai";
|
|
import { useMemo } from "react";
|
|
|
|
export function useParentFolders(m: Folder | HttpRequest | GrpcRequest | WebsocketRequest | null) {
|
|
const folders = useAtomValue(foldersAtom);
|
|
|
|
return useMemo(() => getParentFolders(folders, m), [folders, m]);
|
|
}
|
|
|
|
function getParentFolders(
|
|
folders: Folder[],
|
|
currentModel: Folder | HttpRequest | GrpcRequest | WebsocketRequest | null,
|
|
): Folder[] {
|
|
if (currentModel == null) return [];
|
|
|
|
const parentFolder = currentModel.folderId
|
|
? folders.find((f) => f.id === currentModel.folderId)
|
|
: null;
|
|
if (parentFolder == null) {
|
|
return [];
|
|
}
|
|
|
|
return [parentFolder, ...getParentFolders(folders, parentFolder)];
|
|
}
|