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)]; }