From 24cedb07ae1cd6ab66e3f2e51ea61be1d3af1765 Mon Sep 17 00:00:00 2001 From: northsqrd <113257971+northsqrd@users.noreply.github.com> Date: Tue, 7 May 2024 20:28:52 +0200 Subject: [PATCH] feat(interface/multi-select): add maxSelectedValues (#563) --- package/client/resource/interface/input.ts | 1 + resource/interface/client/input.lua | 1 + web/src/features/dialog/components/fields/select.tsx | 1 + web/src/typings/dialog.ts | 1 + 4 files changed, 4 insertions(+) diff --git a/package/client/resource/interface/input.ts b/package/client/resource/interface/input.ts index 22d921e..b681d9d 100644 --- a/package/client/resource/interface/input.ts +++ b/package/client/resource/interface/input.ts @@ -64,6 +64,7 @@ interface SelectProps extends BaseInput { default?: string | string[]; clearable?: boolean; searchable?: boolean; + maxSelectedValues?: number; } interface SliderProps extends BaseInput { diff --git a/resource/interface/client/input.lua b/resource/interface/client/input.lua index d011761..549e318 100644 --- a/resource/interface/client/input.lua +++ b/resource/interface/client/input.lua @@ -21,6 +21,7 @@ local input ---@field clearable? boolean ---@field searchable? boolean ---@field description? string +---@field maxSelectedValues? number ---@class InputDialogOptionsProps ---@field allowCancel? boolean diff --git a/web/src/features/dialog/components/fields/select.tsx b/web/src/features/dialog/components/fields/select.tsx index 393a6bd..1090ddf 100644 --- a/web/src/features/dialog/components/fields/select.tsx +++ b/web/src/features/dialog/components/fields/select.tsx @@ -51,6 +51,7 @@ const SelectField: React.FC = (props) => { withAsterisk={props.row.required} clearable={props.row.clearable} searchable={props.row.searchable} + maxSelectedValues={props.row.maxSelectedValues} icon={props.row.icon && } /> )} diff --git a/web/src/typings/dialog.ts b/web/src/typings/dialog.ts index 54f56fa..a503a9f 100644 --- a/web/src/typings/dialog.ts +++ b/web/src/typings/dialog.ts @@ -38,6 +38,7 @@ export interface ISelect extends BaseField<'select' | 'multi-select', string | s options: Array; clearable?: boolean; searchable?: boolean; + maxSelectedValues?: number; } export interface INumber extends BaseField<'number', number> {