Skip to content

Commit 5a1d5be

Browse files
authored
improve(design): Filter support i18n + improve Filter.Checkbox tags wrapper padding and popover min-width (#1432)
1 parent 95b80fd commit 5a1d5be

File tree

9 files changed

+33
-6
lines changed

9 files changed

+33
-6
lines changed

packages/design/src/filter/components/FilterButton.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ interface FilterButtonProps extends BaseFilterProps, InternalFilterProps {
4242
showLabelDivider?: boolean;
4343
/** 是否显示后缀图标区域(包括下拉箭头和清除图标),默认 true */
4444
showSuffixIcon?: boolean;
45+
style?: React.CSSProperties;
4546
}
4647

4748
const FilterButton = forwardRef<FilterButtonRef, FilterButtonProps>(
@@ -65,6 +66,7 @@ const FilterButton = forwardRef<FilterButtonRef, FilterButtonProps>(
6566
showLabelDivider = false,
6667
showSuffixIcon = true,
6768
_isInWrapComponent = false,
69+
style,
6870
...restProps
6971
},
7072
ref
@@ -153,7 +155,7 @@ const FilterButton = forwardRef<FilterButtonRef, FilterButtonProps>(
153155
body: {
154156
padding: 0,
155157
maxWidth: 300,
156-
minWidth: 200,
158+
minWidth: 120,
157159
},
158160
}}
159161
{...popoverProps}
@@ -170,6 +172,7 @@ const FilterButton = forwardRef<FilterButtonRef, FilterButtonProps>(
170172
(!isCollapsed || _isInWrapComponent) &&
171173
getFilterCls(prefixCls, 'selected')
172174
)}
175+
style={style}
173176
>
174177
<Flex align="center" justify="space-between" style={{ width: '100%' }}>
175178
{icon && <div className={getFilterCls(prefixCls, 'button-prefix-icon')}>{icon}</div>}

packages/design/src/filter/components/FilterCascader.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,10 @@ const FilterCascader: React.FC<FilterCascaderProps> = ({
460460
selected={hasValue}
461461
onOpenChange={handleMainPopoverOpenChange}
462462
{...filterButtonProps}
463+
style={{
464+
...filterButtonProps?.style,
465+
paddingInline: token.paddingXXS,
466+
}}
463467
>
464468
<WrappedTagsDisplay tags={selectedTags} onRemove={handleRemoveTag} />
465469
</FilterButton>

packages/design/src/filter/components/FilterCheckbox.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,10 @@ const FilterCheckbox: FC<FilterCheckboxProps> = ({
320320
selected={hasValue}
321321
onOpenChange={handlePopoverOpenChange}
322322
{...filterButtonProps}
323+
style={{
324+
...filterButtonProps?.style,
325+
paddingInline: token.paddingXXS,
326+
}}
323327
>
324328
<WrappedTagsDisplay tags={selectedTags} onRemove={handleRemoveTag} />
325329
</FilterButton>

packages/design/src/filter/components/ResponsiveFilterGroup.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ import Button from '../../button';
1717
import FilterWrap from './FilterWrap';
1818
import type { FilterButtonRef } from './FilterButton';
1919
import ConfigProvider from '../../config-provider';
20-
import type { Locale } from '../../locale';
21-
import enUS from '../../locale/en-US';
20+
import type { FilterLocale, Locale } from '../../locale';
21+
import defaultLocale from '../../locale/en-US';
2222
import {
2323
FilterProvider,
2424
type FilterComponentName,
@@ -46,6 +46,7 @@ export interface ResponsiveFilterGroupProps {
4646
extra?: ReactNode;
4747
/** 是否显示计数 默认 true */
4848
showCount?: boolean;
49+
locale?: FilterLocale;
4950
}
5051

5152
/**
@@ -117,9 +118,14 @@ const ResponsiveFilterGroup: FC<ResponsiveFilterGroupProps> = ({
117118
style,
118119
extra,
119120
showCount = true,
121+
locale: customLocale,
120122
}) => {
121123
const { locale: contextLocale } = useContext(ConfigProvider.ConfigContext);
122-
const filterLocale = (contextLocale as Locale)?.Filter || enUS.Filter;
124+
const filterLocale: FilterLocale = {
125+
...defaultLocale.Filter,
126+
...contextLocale?.Filter,
127+
...customLocale,
128+
};
123129
// 如果没有传入 label,使用国际化默认值
124130
const filterLabel = label ?? filterLocale?.filters;
125131
const containerRef = useRef<HTMLDivElement>(null);
@@ -459,12 +465,12 @@ const ResponsiveFilterGroup: FC<ResponsiveFilterGroupProps> = ({
459465
filterButtonRef.current?.closePopover();
460466
}}
461467
>
462-
Apply
468+
{filterLocale?.apply}
463469
</Button>
464470
)}
465471
{onClearAll && (
466472
<Button type="link" size="small" onClick={handleClearAll}>
467-
Clear All
473+
{filterLocale?.clearAll}
468474
</Button>
469475
)}
470476
</Flex>

packages/design/src/locale/en-US.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,7 @@ export default {
3030
pleaseSelect: 'Please select',
3131
open: 'Open',
3232
filters: 'Filters',
33+
apply: 'Apply',
34+
clearAll: 'Clear All',
3335
},
3436
} as Locale;

packages/design/src/locale/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export interface FilterLocale {
2323
pleaseSelect?: string;
2424
open?: string;
2525
filters?: string;
26+
apply?: string;
27+
clearAll?: string;
2628
}
2729

2830
export interface Locale extends AntLocale {

packages/design/src/locale/ja-JP.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,7 @@ export default {
3030
pleaseSelect: '選択してください',
3131
open: '開く',
3232
filters: 'フィルター',
33+
apply: '確定',
34+
clearAll: 'すべてクリア',
3335
},
3436
} as Locale;

packages/design/src/locale/zh-CN.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,7 @@ export default {
3030
pleaseSelect: '请选择',
3131
open: '开启',
3232
filters: '筛选',
33+
apply: '确定',
34+
clearAll: '清空',
3335
},
3436
} as Locale;

packages/design/src/locale/zh-TW.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,7 @@ export default {
3030
pleaseSelect: '請選擇',
3131
open: '開啟',
3232
filters: '篩選',
33+
apply: '確定',
34+
clearAll: '清空',
3335
},
3436
} as Locale;

0 commit comments

Comments
 (0)