15 lines
800 B
TypeScript
15 lines
800 B
TypeScript
import { useMemo } from "react";
|
|
import { useSettings } from "./queries.ts";
|
|
import type { HubSettings } from "./types.ts";
|
|
|
|
// закрытые задачи (hide-closed): статус Jira из настройки closed_statuses; нет настройки или она не список — закрытых нет
|
|
export const closedStatuses = (s: HubSettings | undefined): Set<string> =>
|
|
new Set(Array.isArray(s?.closed_statuses) ? s.closed_statuses.filter((x): x is string => typeof x === "string") : []);
|
|
|
|
export const isClosed = (status: string | null | undefined, closed: Set<string>): boolean => !!status && closed.has(status);
|
|
|
|
export function useClosedStatuses(): Set<string> {
|
|
const settings = useSettings();
|
|
return useMemo(() => closedStatuses(settings.data), [settings.data]);
|
|
}
|