mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix(files_sharing): apply link share password on first save
Pre-declare newPassword on the share state so Vue 2's reactivity covers it from the start. Without this, $set later relies on a property-addition notification path that races with the toggle's async setter and intermittently drops the password in certain build environments. Fixes: #57011 -e Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
This commit is contained in:
parent
8e6be5bd4f
commit
eafae9d007
1 changed files with 16 additions and 0 deletions
|
|
@ -38,6 +38,10 @@ export default class Share {
|
|||
}
|
||||
ocsData.attributes = ocsData.attributes ?? []
|
||||
|
||||
// Pre-declared so Vue 2 makes newPassword reactive at observation time,
|
||||
// avoiding $set's property-addition path which races with async setters.
|
||||
ocsData.newPassword = ocsData.newPassword ?? undefined
|
||||
|
||||
// store state
|
||||
this._share = ocsData
|
||||
}
|
||||
|
|
@ -278,6 +282,18 @@ export default class Share {
|
|||
this._share.password = password
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsaved password (set during share creation or editing).
|
||||
* Delegates to _share so reads/writes go through the reactive state.
|
||||
*/
|
||||
get newPassword(): string | undefined {
|
||||
return this._share.newPassword
|
||||
}
|
||||
|
||||
set newPassword(value: string | undefined) {
|
||||
this._share.newPassword = value
|
||||
}
|
||||
|
||||
/**
|
||||
* Password expiration time
|
||||
* @return {string} date with YYYY-MM-DD format
|
||||
|
|
|
|||
Loading…
Reference in a new issue