mirror of
https://github.com/fosrl/pangolin.git
synced 2026-07-09 07:30:40 +02:00
add save default view
This commit is contained in:
@@ -6,6 +6,7 @@ import { buildLauncherSearchParams } from "@app/lib/launcherSearchParams";
|
||||
import type {
|
||||
LauncherGroup,
|
||||
LauncherScaleInfo,
|
||||
LauncherDefaultViewOverrides,
|
||||
LauncherViewConfig,
|
||||
LauncherViewRecord,
|
||||
ListLauncherGroupsResponse,
|
||||
@@ -16,6 +17,7 @@ import { AxiosResponse } from "axios";
|
||||
|
||||
export type LauncherPageData = {
|
||||
views: LauncherViewRecord[];
|
||||
defaultViewOverrides: LauncherDefaultViewOverrides;
|
||||
activeViewId: LauncherActiveViewId;
|
||||
config: LauncherViewConfig;
|
||||
savedConfig: LauncherViewConfig;
|
||||
@@ -36,17 +38,23 @@ export async function fetchLauncherPageData(
|
||||
>
|
||||
): Promise<LauncherPageData> {
|
||||
let views: LauncherViewRecord[] = [];
|
||||
let defaultViewOverrides: LauncherDefaultViewOverrides = {
|
||||
personal: null,
|
||||
orgWide: null
|
||||
};
|
||||
try {
|
||||
const viewsRes = await internal.get<
|
||||
AxiosResponse<ListLauncherViewsResponse>
|
||||
>(`/org/${orgId}/launcher/views`, cookieHeader);
|
||||
views = viewsRes.data.data.views;
|
||||
defaultViewOverrides = viewsRes.data.data.defaultViewOverrides;
|
||||
} catch (e) {}
|
||||
|
||||
const { activeViewId, config, savedConfig } = resolveLauncherStateFromUrl(
|
||||
searchParams,
|
||||
views,
|
||||
null
|
||||
null,
|
||||
defaultViewOverrides
|
||||
);
|
||||
|
||||
const scaleFilters = {
|
||||
@@ -110,6 +118,7 @@ export async function fetchLauncherPageData(
|
||||
|
||||
return {
|
||||
views,
|
||||
defaultViewOverrides,
|
||||
activeViewId,
|
||||
config,
|
||||
savedConfig,
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import type { LauncherActiveViewId } from "@app/lib/launcherLocalStorage";
|
||||
import {
|
||||
defaultLauncherViewConfig,
|
||||
getEffectiveDefaultLauncherConfig,
|
||||
parseIdListParam,
|
||||
type LauncherDefaultViewOverrides,
|
||||
type LauncherViewConfig,
|
||||
type LauncherViewRecord
|
||||
} from "@server/routers/launcher/types";
|
||||
@@ -64,10 +66,13 @@ export function isLauncherConfigEqual(
|
||||
|
||||
export function getLauncherUrlBaseConfig(
|
||||
viewId: LauncherActiveViewId,
|
||||
views: LauncherViewRecord[]
|
||||
views: LauncherViewRecord[],
|
||||
defaultViewOverrides?: LauncherDefaultViewOverrides
|
||||
): LauncherViewConfig {
|
||||
if (viewId === "default") {
|
||||
return defaultLauncherViewConfig;
|
||||
return defaultViewOverrides
|
||||
? getEffectiveDefaultLauncherConfig(defaultViewOverrides)
|
||||
: defaultLauncherViewConfig;
|
||||
}
|
||||
|
||||
const savedView = views.find((view) => view.viewId === viewId);
|
||||
@@ -172,7 +177,8 @@ function isValidActiveViewId(
|
||||
export function resolveLauncherStateFromUrl(
|
||||
searchParams: URLSearchParams,
|
||||
views: LauncherViewRecord[],
|
||||
fallbackViewId: LauncherActiveViewId | null
|
||||
fallbackViewId: LauncherActiveViewId | null,
|
||||
defaultViewOverrides?: LauncherDefaultViewOverrides
|
||||
): ResolvedLauncherState {
|
||||
const parsed = parseLauncherUrlState(searchParams);
|
||||
|
||||
@@ -188,18 +194,26 @@ export function resolveLauncherStateFromUrl(
|
||||
: "default";
|
||||
}
|
||||
|
||||
const savedConfig = getLauncherUrlBaseConfig(activeViewId, views);
|
||||
const savedConfig = getLauncherUrlBaseConfig(
|
||||
activeViewId,
|
||||
views,
|
||||
defaultViewOverrides
|
||||
);
|
||||
|
||||
let config: LauncherViewConfig;
|
||||
if (hasLauncherConfigParams(searchParams)) {
|
||||
config = resolveLauncherConfig(
|
||||
defaultLauncherViewConfig,
|
||||
getEffectiveDefaultLauncherConfig(
|
||||
defaultViewOverrides ?? { personal: null, orgWide: null }
|
||||
),
|
||||
parsed.configOverrides
|
||||
);
|
||||
} else if (activeViewId !== "default") {
|
||||
config = savedConfig;
|
||||
} else {
|
||||
config = defaultLauncherViewConfig;
|
||||
config = getEffectiveDefaultLauncherConfig(
|
||||
defaultViewOverrides ?? { personal: null, orgWide: null }
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
+1
-1
@@ -1190,7 +1190,7 @@ export const launcherQueries = {
|
||||
const res = await meta!.api.get<
|
||||
AxiosResponse<ListLauncherViewsResponse>
|
||||
>(`/org/${orgId}/launcher/views`, { signal });
|
||||
return res.data.data.views;
|
||||
return res.data.data;
|
||||
}
|
||||
}),
|
||||
sites: ({
|
||||
|
||||
Reference in New Issue
Block a user