🐛 fix(subscribe): Update default selection logic in subscription form to ensure proper state management

This commit is contained in:
web@ppanel 2025-04-01 12:37:17 +07:00
parent 328838d754
commit ef153747bd

View File

@ -244,16 +244,23 @@ export default function SubscribeAppForm<
onChange={(value) => { onChange={(value) => {
const filteredValue = value.filter((item) => item.url); const filteredValue = value.filter((item) => item.url);
const defaultIndex = filteredValue.findIndex( const newDefaultIndex = value.findIndex(
(item) => item.is_default, (item, idx) =>
item.is_default &&
(!field.value?.[idx] || !field.value[idx].is_default),
); );
let finalValue = filteredValue; let finalValue = filteredValue;
if (defaultIndex >= 0) {
if (newDefaultIndex >= 0 && filteredValue[newDefaultIndex]) {
finalValue = filteredValue.map((item, index) => ({ finalValue = filteredValue.map((item, index) => ({
...item, ...item,
is_default: index === defaultIndex, is_default: index === newDefaultIndex,
})); }));
} else if (filteredValue.length > 0) { } else if (
!filteredValue.some((item) => item.is_default) &&
filteredValue.length > 0
) {
finalValue = filteredValue.map((item, index) => ({ finalValue = filteredValue.map((item, index) => ({
...item, ...item,
is_default: index === 0, is_default: index === 0,