UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: русификация значений rich-filters во внутреннем контуре

This commit is contained in:
DCCONSTRUCTIONS 2026-04-21 11:07:58 +03:00
parent a5bf967862
commit 2c54a8f274
3 changed files with 22 additions and 8 deletions

View File

@ -7,6 +7,7 @@
import { useCallback, useMemo } from "react";
import { AtSign, Briefcase } from "lucide-react";
// plane imports
import { useTranslation } from "@plane/i18n";
import { Logo } from "@plane/propel/emoji-icon-picker";
import {
CalendarLayoutIcon,
@ -91,6 +92,7 @@ export type TWorkItemFiltersConfig = {
export const useWorkItemFiltersConfig = (props: TUseWorkItemFiltersConfigProps): TWorkItemFiltersConfig => {
const { allowedFilters, cycleIds, labelIds, memberIds, moduleIds, projectId, projectIds, stateIds, workspaceSlug } =
props;
const { t } = useTranslation();
// store hooks
const { loader: projectLoader, getProjectById } = useProject();
const { getCycleById } = useCycle();
@ -152,11 +154,13 @@ export const useWorkItemFiltersConfig = (props: TUseWorkItemFiltersConfigProps):
() =>
getStateGroupFilterConfig<TWorkItemFilterProperty>("state_group")({
isEnabled: isFilterEnabled("state_group"),
filterLabel: t("common.state_group"),
filterIcon: StatePropertyIcon,
getItemLabel: (stateGroupKey) => t(`workspace_projects.state.${stateGroupKey}`),
getOptionIcon: (stateGroupKey) => <StateGroupIcon stateGroup={stateGroupKey} />,
...operatorConfigs,
}),
[isFilterEnabled, operatorConfigs]
[isFilterEnabled, operatorConfigs, t]
);
// state filter config
@ -298,11 +302,13 @@ export const useWorkItemFiltersConfig = (props: TUseWorkItemFiltersConfigProps):
() =>
getPriorityFilterConfig<TWorkItemFilterProperty>("priority")({
isEnabled: isFilterEnabled("priority"),
filterLabel: t("common.priority"),
filterIcon: PriorityPropertyIcon,
getItemLabel: (priorityKey) => (priorityKey === "none" ? t("common.none") : t(priorityKey)),
getOptionIcon: (priority) => <PriorityIcon priority={priority} />,
...operatorConfigs,
}),
[isFilterEnabled, operatorConfigs]
[isFilterEnabled, operatorConfigs, t]
);
// start date filter config

View File

@ -18,7 +18,11 @@ import { createFilterConfig, getMultiSelectConfig, createOperatorConfigEntry } f
/**
* Priority filter specific params
*/
export type TCreatePriorityFilterParams = TCreateFilterConfigParams & IFilterIconConfig<TIssuePriorities>;
export type TCreatePriorityFilterParams = TCreateFilterConfigParams &
IFilterIconConfig<TIssuePriorities> & {
filterLabel?: string;
getItemLabel?: (priorityKey: TIssuePriorities) => string;
};
/**
* Helper to get the priority multi select config
@ -33,7 +37,7 @@ export const getPriorityMultiSelectConfig = (
{
items: ISSUE_PRIORITIES,
getId: (priority) => priority.key,
getLabel: (priority) => priority.title,
getLabel: (priority) => params.getItemLabel?.(priority.key) ?? priority.title,
getValue: (priority) => priority.key,
getIconData: (priority) => priority.key,
},
@ -57,7 +61,7 @@ export const getPriorityFilterConfig =
(params: TCreatePriorityFilterParams) =>
createFilterConfig<P>({
id: key,
label: "Priority",
label: params.filterLabel ?? "Priority",
...params,
icon: params.filterIcon,
supportedOperatorConfigsMap: new Map([

View File

@ -17,7 +17,11 @@ import { createFilterConfig, getMultiSelectConfig, createOperatorConfigEntry } f
/**
* State group filter specific params
*/
export type TCreateStateGroupFilterParams = TCreateFilterConfigParams & IFilterIconConfig<TStateGroups>;
export type TCreateStateGroupFilterParams = TCreateFilterConfigParams &
IFilterIconConfig<TStateGroups> & {
filterLabel?: string;
getItemLabel?: (stateGroupKey: TStateGroups) => string;
};
/**
* Helper to get the state group multi select config
@ -32,7 +36,7 @@ export const getStateGroupMultiSelectConfig = (
{
items: Object.values(STATE_GROUPS),
getId: (state) => state.key,
getLabel: (state) => state.label,
getLabel: (state) => params.getItemLabel?.(state.key) ?? state.label,
getValue: (state) => state.key,
getIconData: (state) => state.key,
},
@ -56,7 +60,7 @@ export const getStateGroupFilterConfig =
(params: TCreateStateGroupFilterParams) =>
createFilterConfig<P>({
id: key,
label: "State Group",
label: params.filterLabel ?? "State Group",
...params,
icon: params.filterIcon,
supportedOperatorConfigsMap: new Map([