mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-23 08:58:26 +00:00
Merge pull request #12258 from ToolJet/fix/triage-issues
Fix/triage issues
This commit is contained in:
commit
13f4f65c15
4 changed files with 44 additions and 1 deletions
|
|
@ -127,6 +127,13 @@ export const buttonGroupConfig = {
|
|||
exposedVariables: {
|
||||
selected: [1],
|
||||
},
|
||||
actions: [
|
||||
{
|
||||
handle: 'setSelected',
|
||||
displayName: 'Select option',
|
||||
params: [{ handle: 'selected', displayName: 'Value' }],
|
||||
},
|
||||
],
|
||||
definition: {
|
||||
others: {
|
||||
showOnDesktop: { value: '{{true}}' },
|
||||
|
|
|
|||
|
|
@ -507,7 +507,7 @@ export const createComponentsSlice = (set, get) => ({
|
|||
|
||||
const resolvedMandatory = getResolvedValue(mandatory, customResolveObjects) || false;
|
||||
|
||||
if (resolvedMandatory == true && !widgetValue) {
|
||||
if (resolvedMandatory == true && !widgetValue && widgetValue !== 0) {
|
||||
return {
|
||||
isValid: false,
|
||||
validationError: `Field cannot be empty`,
|
||||
|
|
|
|||
|
|
@ -66,6 +66,34 @@ export const ButtonGroup = function Button({
|
|||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [multiSelection]);
|
||||
|
||||
const setSelected = (selected) => {
|
||||
if (multiSelection) {
|
||||
if (Array.isArray(selected)) {
|
||||
const filteredItems = selected.filter((item) => values.includes(item));
|
||||
setDefaultActive(filteredItems);
|
||||
setExposedVariable('selected', filteredItems.join(','));
|
||||
} else if ((typeof selected === 'string' || typeof selected === 'number') && values.includes(selected)) {
|
||||
setDefaultActive([selected]);
|
||||
setExposedVariable('selected', String(selected));
|
||||
}
|
||||
} else {
|
||||
if (Array.isArray(selected)) {
|
||||
const filteredItems = selected.filter((item) => values.includes(item));
|
||||
if (filteredItems?.length >= 1) {
|
||||
setDefaultActive([filteredItems[0]]);
|
||||
setExposedVariable('selected', String(filteredItems[0]));
|
||||
}
|
||||
} else if ((typeof selected === 'string' || typeof selected === 'number') && values.includes(selected)) {
|
||||
setDefaultActive([selected]);
|
||||
setExposedVariable('selected', String(selected));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
setExposedVariable('setSelected', setSelected);
|
||||
}, [multiSelection, values]);
|
||||
|
||||
const buttonClick = (index) => {
|
||||
if (defaultActive?.includes(values[index]) && multiSelection) {
|
||||
const copyDefaultActive = [...defaultActive];
|
||||
|
|
|
|||
|
|
@ -127,6 +127,14 @@ export const buttonGroupConfig = {
|
|||
exposedVariables: {
|
||||
selected: [1],
|
||||
},
|
||||
actions: [
|
||||
{
|
||||
handle: 'setSelected',
|
||||
displayName: 'Select option',
|
||||
params: [{ handle: 'selected', displayName: 'Value' }],
|
||||
},
|
||||
],
|
||||
|
||||
definition: {
|
||||
others: {
|
||||
showOnDesktop: { value: '{{true}}' },
|
||||
|
|
|
|||
Loading…
Reference in a new issue