Files
stash/ui/v2.5/src/core/config.ts
Joe Scylla 9083796a42 #1810 Truncate large numbers on buttons (#2781)
* #1810 Truncate large numbers on buttons
* Apply to card popovers as well

Co-authored-by: Roland Karle <roland.karle@aufwind-group.de>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2022-10-06 12:43:17 +11:00

94 lines
2.5 KiB
TypeScript

import { IntlShape } from "react-intl";
import { ITypename } from "src/utils";
import { FilterMode, SortDirectionEnum } from "./generated-graphql";
// NOTE: double capitals aren't converted correctly in the backend
export interface ISavedFilterRow extends ITypename {
__typename: "SavedFilter";
savedFilterId: number;
}
export interface IMessage {
id: string;
values: { [key: string]: string };
}
export interface ICustomFilter extends ITypename {
__typename: "CustomFilter";
message?: IMessage;
title?: string;
mode: FilterMode;
sortBy: string;
direction: SortDirectionEnum;
}
export type FrontPageContent = ISavedFilterRow | ICustomFilter;
export interface IUIConfig {
frontPageContent?: FrontPageContent[];
lastNoteSeen?: number;
showChildTagContent?: boolean;
showChildStudioContent?: boolean;
showTagCardOnHover?: boolean;
abbreviateCounters?: boolean;
}
function recentlyReleased(
intl: IntlShape,
mode: FilterMode,
objectsID: string
): ICustomFilter {
return {
__typename: "CustomFilter",
message: {
id: "recently_released_objects",
values: { objects: intl.formatMessage({ id: objectsID }) },
},
mode,
sortBy: "date",
direction: SortDirectionEnum.Desc,
};
}
function recentlyAdded(
intl: IntlShape,
mode: FilterMode,
objectsID: string
): ICustomFilter {
return {
__typename: "CustomFilter",
message: {
id: "recently_added_objects",
values: { objects: intl.formatMessage({ id: objectsID }) },
},
mode,
sortBy: "created_at",
direction: SortDirectionEnum.Desc,
};
}
export function generateDefaultFrontPageContent(intl: IntlShape) {
return [
recentlyReleased(intl, FilterMode.Scenes, "scenes"),
recentlyAdded(intl, FilterMode.Studios, "studios"),
recentlyReleased(intl, FilterMode.Movies, "movies"),
recentlyAdded(intl, FilterMode.Performers, "performers"),
recentlyReleased(intl, FilterMode.Galleries, "galleries"),
];
}
export function generatePremadeFrontPageContent(intl: IntlShape) {
return [
recentlyReleased(intl, FilterMode.Scenes, "scenes"),
recentlyAdded(intl, FilterMode.Scenes, "scenes"),
recentlyReleased(intl, FilterMode.Galleries, "galleries"),
recentlyAdded(intl, FilterMode.Galleries, "galleries"),
recentlyAdded(intl, FilterMode.Images, "images"),
recentlyReleased(intl, FilterMode.Movies, "movies"),
recentlyAdded(intl, FilterMode.Movies, "movies"),
recentlyAdded(intl, FilterMode.Studios, "studios"),
recentlyAdded(intl, FilterMode.Performers, "performers"),
];
}