Merge pull request #12258 from ToolJet/fix/triage-issues

Fix/triage issues
This commit is contained in:
Johnson Cherian 2025-03-21 14:34:26 +05:30 committed by GitHub
commit 13f4f65c15
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 44 additions and 1 deletions

View file

@ -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}}' },

View file

@ -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`,

View file

@ -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];

View file

@ -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}}' },