Skip to content

Commit 8e3411b

Browse files
committed
feat: auto-assign signingOrder and adjust on signer deletion
Auto-assign incrementing signingOrder to new signers in ordered_numeric mode. When deleting a signer, decrement signingOrder of subsequent signers to close gaps and maintain sequential ordering. Signed-off-by: Vitor Mattos <[email protected]>
1 parent 37571fa commit 8e3411b

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/store/files.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,13 @@ export const useFilesStore = function(...args) {
215215
break
216216
}
217217
}
218+
if (!signer.signingOrder) {
219+
const signatureFlow = loadState('libresign', 'signature_flow', 'parallel')
220+
if (signatureFlow === 'ordered_numeric') {
221+
const maxOrder = this.getFile().signers.reduce((max, s) => Math.max(max, s.signingOrder || 0), 0)
222+
signer.signingOrder = maxOrder + 1
223+
}
224+
}
218225
this.getFile().signers.push(signer)
219226
const selected = this.selectedNodeId
220227
this.selectFile(-1) // to force reactivity
@@ -228,11 +235,22 @@ export const useFilesStore = function(...args) {
228235
signRequestId: signer.signRequestId,
229236
}))
230237
}
238+
239+
const signatureFlow = loadState('libresign', 'signature_flow', 'parallel')
240+
231241
set(
232242
this.files[this.selectedNodeId],
233243
'signers',
234244
this.files[this.selectedNodeId].signers.filter((i) => i.identify !== signer.identify),
235245
)
246+
247+
if (signatureFlow === 'ordered_numeric' && signer.signingOrder) {
248+
this.files[this.selectedNodeId].signers.forEach((s) => {
249+
if (s.signingOrder && s.signingOrder > signer.signingOrder) {
250+
s.signingOrder -= 1
251+
}
252+
})
253+
}
236254
},
237255
async delete(file, deleteFile) {
238256
file = this.getFile(file)

0 commit comments

Comments
 (0)