mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
* #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>
94 lines
2.5 KiB
TypeScript
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"),
|
|
];
|
|
}
|