Skip to content

fix: vue3 component api migration#7002

Merged
vitormattos merged 12 commits intomainfrom
fix/vue3-component-api-migration
Feb 26, 2026
Merged

fix: vue3 component api migration#7002
vitormattos merged 12 commits intomainfrom
fix/vue3-component-api-migration

Conversation

@vitormattos
Copy link
Copy Markdown
Member

No description provided.

NcCheckboxRadioSwitch changed its API from Vue 2 to Vue 3.
Replace :checked with :model-value and @update:checked with
@update:modelValue so the checkbox correctly reads and writes
the per-row selection state in the files list.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…ue in selectAllBind

NcCheckboxRadioSwitch changed its API from Vue 2 to Vue 3.
Replace the `checked:` key in selectAllBind with `'model-value':`
and replace @update:checked with @update:modelValue so the
select-all checkbox correctly reflects and toggles the full
selection state.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…witches

NcCheckboxRadioSwitch changed its API from Vue 2 to Vue 3.
Replace :checked with :model-value and @update:checked with
@update:modelValue on both the async-mode toggle and the
worker-type toggle so their state is correctly read and saved.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…alue on NcTextField

NcTextField changed its emit from `update:value` to `update:modelValue`
in @nextcloud/vue v9 (Vue 3). Replace @update:value with @update:modelValue
on the three NcTextField instances (maximum validity, renewal interval and
expiry in days) so the auto-save callbacks are correctly triggered.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…:modelValue on NcTextField

NcTextField changed its emit from `update:value` to `update:modelValue`
in @nextcloud/vue v9 (Vue 3). Replace @update:value with @update:modelValue
on both NcTextField instances (array items and single text fields) so the
validation callbacks fire correctly when the user edits certificate fields.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…lValue on NcTextField

NcTextField changed its emit from `update:value` to `update:modelValue`
in @nextcloud/vue v9 (Vue 3). Replace @update:value with @update:modelValue
so the saveDefaultUserFolder callback is triggered when the user edits
the custom folder name field.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…ield

NcTextField in @nextcloud/vue v9 (Vue 3) binds via modelValue, not a
prop named `value`. Replace v-model:value="OID" with v-model="OID"
so the OID field is correctly two-way bound.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
NcTextField in @nextcloud/vue v9 (Vue 3) binds via modelValue, not a
prop named `value`. Replace v-model:value="reminderDaysBefore" with
v-model="reminderDaysBefore" so the reminder days field is correctly
two-way bound.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…Value on NcActionInput

NcActionInput changed its emit from `update:value` to `update:modelValue`
in @nextcloud/vue v9 (Vue 3). Replace @update:value with @update:modelValue
on the owner filter NcActionInput so the onFilterChange callback is triggered
when the user types in the filter field.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Add unit tests to guard against regressions to the Vue 2 → Vue 3
NcCheckboxRadioSwitch API migration in FileEntryCheckbox.vue.

The NcCheckboxRadioSwitch stub enforces the Vue 3 contract (:model-value /
@update:modelValue). Tests verify:
- modelValue prop is passed correctly (not the legacy :checked)
- selecting/deselecting a file updates the selection store
- update:modelValue reaches onSelectionChange (regression guard for
  the old @update:checked that was silently ignored in Vue 3)
- loading state renders the spinner instead of the checkbox

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…-all checkbox

Add unit tests to guard against regressions to the Vue 2 → Vue 3
NcCheckboxRadioSwitch API migration in FilesListTableHeader.vue.

The NcCheckboxRadioSwitch stub enforces the Vue 3 contract (:model-value /
@update:modelValue). Tests verify:
- selectAllBind passes model-value (not the legacy checked key)
- modelValue is false when nothing is selected
- indeterminate is true when a subset of files is selected
- modelValue is true when all files are selected
- onToggleAll correctly selects and deselects all files via update:modelValue

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…worker switches

Add unit tests to guard against regressions to the Vue 2 → Vue 3
NcCheckboxRadioSwitch API migration in SigningMode.vue.

The NcCheckboxRadioSwitch stub enforces the Vue 3 contract (:model-value /
@update:modelValue). Tests verify:
- modelValue prop is passed (not the legacy :checked)
- async switch starts unchecked (loadState returns 'sync' by default)
- update:modelValue correctly sets asyncEnabled and externalWorkerEnabled
- worker-type switch is only visible when asyncEnabled is true
- axios.post is called after a toggle change

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
@vitormattos vitormattos added this to the Next Major (34) milestone Feb 26, 2026
@vitormattos vitormattos self-assigned this Feb 26, 2026
@github-project-automation github-project-automation Bot moved this to 0. Needs triage in Roadmap Feb 26, 2026
@vitormattos
Copy link
Copy Markdown
Member Author

/backport to stable33

@vitormattos vitormattos merged commit 2811ae6 into main Feb 26, 2026
65 checks passed
@vitormattos vitormattos deleted the fix/vue3-component-api-migration branch February 26, 2026 16:21
@github-project-automation github-project-automation Bot moved this from 0. Needs triage to 4. to release in Roadmap Feb 26, 2026
@vitormattos
Copy link
Copy Markdown
Member Author

/backport to stable32

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

1 participant