fix: load screen on sign, block on missing counterpart #170
@ -514,6 +514,9 @@ export const CreatePage = () => {
|
|||||||
return (
|
return (
|
||||||
file.pages?.flatMap((page, index) => {
|
file.pages?.flatMap((page, index) => {
|
||||||
return page.drawnFields.map((drawnField) => {
|
return page.drawnFields.map((drawnField) => {
|
||||||
|
if (!drawnField.counterpart) {
|
||||||
|
throw new Error('Missing counterpart')
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
type: drawnField.type,
|
type: drawnField.type,
|
||||||
location: {
|
location: {
|
||||||
@ -670,6 +673,7 @@ export const CreatePage = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const generateCreateSignature = async (
|
const generateCreateSignature = async (
|
||||||
|
markConfig: Mark[],
|
||||||
fileHashes: {
|
fileHashes: {
|
||||||
[key: string]: string
|
[key: string]: string
|
||||||
},
|
},
|
||||||
@ -677,7 +681,6 @@ export const CreatePage = () => {
|
|||||||
) => {
|
) => {
|
||||||
const signers = users.filter((user) => user.role === UserRole.signer)
|
const signers = users.filter((user) => user.role === UserRole.signer)
|
||||||
const viewers = users.filter((user) => user.role === UserRole.viewer)
|
const viewers = users.filter((user) => user.role === UserRole.viewer)
|
||||||
const markConfig = createMarks(fileHashes)
|
|
||||||
|
|
||||||
const content: CreateSignatureEventContent = {
|
const content: CreateSignatureEventContent = {
|
||||||
signers: signers.map((signer) => hexToNpub(signer.pubkey)),
|
signers: signers.map((signer) => hexToNpub(signer.pubkey)),
|
||||||
@ -721,6 +724,7 @@ export const CreatePage = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleCreate = async () => {
|
const handleCreate = async () => {
|
||||||
|
try {
|
||||||
if (!validateInputs()) return
|
if (!validateInputs()) return
|
||||||
|
|
||||||
setIsLoading(true)
|
setIsLoading(true)
|
||||||
|
|||||||
@ -748,6 +752,8 @@ export const CreatePage = () => {
|
|||||||
encryptionKey
|
encryptionKey
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const markConfig = createMarks(fileHashes)
|
||||||
|
|
||||||
setLoadingSpinnerDesc('Uploading files.zip to file storage')
|
setLoadingSpinnerDesc('Uploading files.zip to file storage')
|
||||||
const fileUrl = await uploadFile(encryptedArrayBuffer)
|
const fileUrl = await uploadFile(encryptedArrayBuffer)
|
||||||
if (!fileUrl) {
|
if (!fileUrl) {
|
||||||
@ -756,7 +762,11 @@ export const CreatePage = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setLoadingSpinnerDesc('Generating create signature')
|
setLoadingSpinnerDesc('Generating create signature')
|
||||||
const createSignature = await generateCreateSignature(fileHashes, fileUrl)
|
const createSignature = await generateCreateSignature(
|
||||||
|
markConfig,
|
||||||
|
fileHashes,
|
||||||
|
fileUrl
|
||||||
|
)
|
||||||
if (!createSignature) {
|
if (!createSignature) {
|
||||||
setIsLoading(false)
|
setIsLoading(false)
|
||||||
return
|
return
|
||||||
@ -810,8 +820,14 @@ export const CreatePage = () => {
|
|||||||
zip.file(`files/${file.name}`, file)
|
zip.file(`files/${file.name}`, file)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const markConfig = createMarks(fileHashes)
|
||||||
|
|
||||||
setLoadingSpinnerDesc('Generating create signature')
|
setLoadingSpinnerDesc('Generating create signature')
|
||||||
const createSignature = await generateCreateSignature(fileHashes, '')
|
const createSignature = await generateCreateSignature(
|
||||||
|
markConfig,
|
||||||
|
fileHashes,
|
||||||
|
''
|
||||||
|
)
|
||||||
if (!createSignature) {
|
if (!createSignature) {
|
||||||
setIsLoading(false)
|
setIsLoading(false)
|
||||||
return
|
return
|
||||||
@ -847,6 +863,14 @@ export const CreatePage = () => {
|
|||||||
|
|
||||||
await handleOfflineFlow(encryptedArrayBuffer, encryptionKey)
|
await handleOfflineFlow(encryptedArrayBuffer, encryptionKey)
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (error instanceof Error) {
|
||||||
|
toast.error(error.message)
|
||||||
|
}
|
||||||
|
console.error(error)
|
||||||
|
} finally {
|
||||||
|
setIsLoading(false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const onDrawFieldsChange = (sigitFiles: SigitFile[]) => {
|
const onDrawFieldsChange = (sigitFiles: SigitFile[]) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user
I wonder if this flow should be refactored, given our recent conversation about error handling. I also thing that there are more efficient ways to handle loading state changes.
Having said that, perhaps it is best left to a separate PR. Worth adding as an issue?
I think we can for now just leave
finally
, to executesetIsLoading(false)
once, we don't need it in each return