mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-24 09:38:29 +02:00
Sort workspaces, envs, jars
This commit is contained in:
@@ -3,6 +3,10 @@ import { atom, useAtomValue } from 'jotai';
|
|||||||
|
|
||||||
export const cookieJarsAtom = atom<CookieJar[] | undefined>();
|
export const cookieJarsAtom = atom<CookieJar[] | undefined>();
|
||||||
|
|
||||||
|
export const sortedCookieJars = atom((get) =>
|
||||||
|
get(cookieJarsAtom)?.sort((a, b) => a.name.localeCompare(b.name)),
|
||||||
|
);
|
||||||
|
|
||||||
export function useCookieJars() {
|
export function useCookieJars() {
|
||||||
return useAtomValue(cookieJarsAtom);
|
return useAtomValue(sortedCookieJars);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,12 +4,16 @@ import { atom } from 'jotai/index';
|
|||||||
|
|
||||||
export const environmentsAtom = atom<Environment[]>([]);
|
export const environmentsAtom = atom<Environment[]>([]);
|
||||||
|
|
||||||
|
export const sortedEnvironmentsAtom = atom((get) =>
|
||||||
|
get(environmentsAtom).sort((a, b) => a.name.localeCompare(b.name)),
|
||||||
|
);
|
||||||
|
|
||||||
export const environmentsBreakdownAtom = atom<{
|
export const environmentsBreakdownAtom = atom<{
|
||||||
baseEnvironment: Environment | null;
|
baseEnvironment: Environment | null;
|
||||||
allEnvironments: Environment[];
|
allEnvironments: Environment[];
|
||||||
subEnvironments: Environment[];
|
subEnvironments: Environment[];
|
||||||
}>((get) => {
|
}>((get) => {
|
||||||
const allEnvironments = get(environmentsAtom);
|
const allEnvironments = get(sortedEnvironmentsAtom);
|
||||||
const baseEnvironment = allEnvironments.find((e) => e.environmentId == null) ?? null;
|
const baseEnvironment = allEnvironments.find((e) => e.environmentId == null) ?? null;
|
||||||
const subEnvironments =
|
const subEnvironments =
|
||||||
allEnvironments.filter((e) => e.environmentId === (baseEnvironment?.id ?? 'n/a')) ?? [];
|
allEnvironments.filter((e) => e.environmentId === (baseEnvironment?.id ?? 'n/a')) ?? [];
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ import { listWorkspaces } from '../lib/store';
|
|||||||
const workspaces = await listWorkspaces();
|
const workspaces = await listWorkspaces();
|
||||||
export const workspacesAtom = atom<Workspace[]>(workspaces);
|
export const workspacesAtom = atom<Workspace[]>(workspaces);
|
||||||
|
|
||||||
|
export const sortedWorkspacesAtom = atom((get) =>
|
||||||
|
get(workspacesAtom).sort((a, b) => a.name.localeCompare(b.name)),
|
||||||
|
);
|
||||||
|
|
||||||
export function useWorkspaces() {
|
export function useWorkspaces() {
|
||||||
return useAtomValue(workspacesAtom);
|
return useAtomValue(sortedWorkspacesAtom);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user