fix: update the url in DM to contain fileUrl and encryption key
All checks were successful
Release / build_and_release (push) Successful in 56s
All checks were successful
Release / build_and_release (push) Successful in 56s
This commit is contained in:
parent
89850f881d
commit
9fa3df3850
@ -1,13 +1,17 @@
|
|||||||
import { Box, Button, TextField, Typography } from '@mui/material'
|
import { Box, Button, TextField, Typography } from '@mui/material'
|
||||||
import saveAs from 'file-saver'
|
import saveAs from 'file-saver'
|
||||||
import { MuiFileInput } from 'mui-file-input'
|
import { MuiFileInput } from 'mui-file-input'
|
||||||
import { useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import { LoadingSpinner } from '../../components/LoadingSpinner'
|
import { LoadingSpinner } from '../../components/LoadingSpinner'
|
||||||
import { decryptArrayBuffer } from '../../utils'
|
import { decryptArrayBuffer } from '../../utils'
|
||||||
import styles from './style.module.scss'
|
import styles from './style.module.scss'
|
||||||
import { toast } from 'react-toastify'
|
import { toast } from 'react-toastify'
|
||||||
|
import { useSearchParams } from 'react-router-dom'
|
||||||
|
import axios from 'axios'
|
||||||
|
|
||||||
export const DecryptZip = () => {
|
export const DecryptZip = () => {
|
||||||
|
const [searchParams] = useSearchParams()
|
||||||
|
|
||||||
const [selectedFile, setSelectedFile] = useState<File | null>(null)
|
const [selectedFile, setSelectedFile] = useState<File | null>(null)
|
||||||
const [encryptionKey, setEncryptionKey] = useState('')
|
const [encryptionKey, setEncryptionKey] = useState('')
|
||||||
|
|
||||||
@ -15,6 +19,36 @@ export const DecryptZip = () => {
|
|||||||
const [loadingSpinnerDesc, setLoadingSpinnerDesc] = useState('')
|
const [loadingSpinnerDesc, setLoadingSpinnerDesc] = useState('')
|
||||||
const [isDraggingOver, setIsDraggingOver] = useState(false)
|
const [isDraggingOver, setIsDraggingOver] = useState(false)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const fileUrl = searchParams.get('file')
|
||||||
|
|
||||||
|
if (fileUrl) {
|
||||||
|
setIsLoading(true)
|
||||||
|
setLoadingSpinnerDesc('Fetching zip file')
|
||||||
|
axios
|
||||||
|
.get(fileUrl, {
|
||||||
|
responseType: 'arraybuffer'
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
const fileName = fileUrl.split('/').pop()
|
||||||
|
const file = new File([res.data], fileName!)
|
||||||
|
setSelectedFile(file)
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.error(
|
||||||
|
`error occurred in getting zip file from ${fileUrl}`,
|
||||||
|
err
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
setIsLoading(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const key = searchParams.get('key')
|
||||||
|
if (key) setEncryptionKey(key)
|
||||||
|
}, [searchParams])
|
||||||
|
|
||||||
const handleDecrypt = async () => {
|
const handleDecrypt = async () => {
|
||||||
if (!selectedFile || !encryptionKey) return
|
if (!selectedFile || !encryptionKey) return
|
||||||
|
|
||||||
@ -91,7 +125,11 @@ export const DecryptZip = () => {
|
|||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Box sx={{ mt: 1, display: 'flex', justifyContent: 'center' }}>
|
<Box sx={{ mt: 1, display: 'flex', justifyContent: 'center' }}>
|
||||||
<Button onClick={handleDecrypt} variant='contained'>
|
<Button
|
||||||
|
onClick={handleDecrypt}
|
||||||
|
variant='contained'
|
||||||
|
disabled={!selectedFile || !encryptionKey}
|
||||||
|
>
|
||||||
Decrypt
|
Decrypt
|
||||||
</Button>
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
@ -8,7 +8,7 @@ import { SignDocument } from '../pages/sign'
|
|||||||
|
|
||||||
export const appPrivateRoutes = {
|
export const appPrivateRoutes = {
|
||||||
homePage: '/',
|
homePage: '/',
|
||||||
decryptZip: '/decrypt-zip',
|
decryptZip: '/decrypt',
|
||||||
sign: '/sign'
|
sign: '/sign'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ import axios from 'axios'
|
|||||||
import { EventTemplate } from 'nostr-tools'
|
import { EventTemplate } from 'nostr-tools'
|
||||||
import { MetadataController, NostrController } from '../controllers'
|
import { MetadataController, NostrController } from '../controllers'
|
||||||
import { toast } from 'react-toastify'
|
import { toast } from 'react-toastify'
|
||||||
|
import { appPrivateRoutes } from '../routes'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uploads a file to a file storage service.
|
* Uploads a file to a file storage service.
|
||||||
@ -73,7 +74,10 @@ export const sendDM = async (
|
|||||||
const initialLine = isSigner
|
const initialLine = isSigner
|
||||||
? 'You have been requested for a signature.'
|
? 'You have been requested for a signature.'
|
||||||
: 'You have received a signed document.'
|
: 'You have received a signed document.'
|
||||||
const content = `${initialLine}\nHere is the URL for the zip file that you can download.\n${fileUrl}\nHowever, this zip file is encrypted and you need to decrypt it using https://app.sigit.io \nEncryption key: ${encryptionKey}`
|
|
||||||
|
const decryptionUrl = `http://app.sigit.io${appPrivateRoutes.decryptZip}?file=${fileUrl}&key=${encryptionKey}`
|
||||||
|
|
||||||
|
const content = `${initialLine}\nHere is the URL for the zip file that you can download.\n${fileUrl}\nHowever, this zip file is encrypted and you need to decrypt it using ${decryptionUrl}`
|
||||||
|
|
||||||
// Set up event listener for authentication event
|
// Set up event listener for authentication event
|
||||||
nostrController.on('nsecbunker-auth', (url) => {
|
nostrController.on('nsecbunker-auth', (url) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user