Compare commits
12 Commits
b12ce258eb
...
02bb71409a
Author | SHA1 | Date | |
---|---|---|---|
02bb71409a | |||
6a0402a74d | |||
2fdaa485da | |||
9d5213ba14 | |||
98b9c6e535 | |||
b4d121b503 | |||
1787c3625c | |||
cb617ed386 | |||
aa04472277 | |||
f64e90e99d | |||
88e1485dcc | |||
33da049428 |
@ -1,8 +1,6 @@
|
|||||||
import { CurrentUserFile } from '../../types/file.ts'
|
import { CurrentUserFile } from '../../types/file.ts'
|
||||||
import styles from './style.module.scss'
|
import styles from './style.module.scss'
|
||||||
import { Button } from '@mui/material'
|
import { Button } from '@mui/material'
|
||||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|
||||||
import { faCheck } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
interface FileListProps {
|
interface FileListProps {
|
||||||
files: CurrentUserFile[]
|
files: CurrentUserFile[]
|
||||||
@ -28,14 +26,8 @@ const FileList = ({
|
|||||||
className={`${styles.fileItem} ${isActive(file) && styles.active}`}
|
className={`${styles.fileItem} ${isActive(file) && styles.active}`}
|
||||||
onClick={() => setCurrentFile(file)}
|
onClick={() => setCurrentFile(file)}
|
||||||
>
|
>
|
||||||
<div className={styles.fileNumber}>{file.id}</div>
|
<span className={styles.fileNumber}>{file.id}</span>
|
||||||
<div className={styles.fileInfo}>
|
<span className={styles.fileName}>{file.filename}</span>
|
||||||
<div className={styles.fileName}>{file.filename}</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className={styles.fileVisual}>
|
|
||||||
{file.isHashValid && <FontAwesomeIcon icon={faCheck} />}
|
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -21,12 +21,6 @@ ul {
|
|||||||
padding: 0; /* Removes default padding */
|
padding: 0; /* Removes default padding */
|
||||||
}
|
}
|
||||||
|
|
||||||
li {
|
|
||||||
list-style-type: none; /* Removes the bullets */
|
|
||||||
margin: 0; /* Removes any default margin */
|
|
||||||
padding: 0; /* Removes any default padding */
|
|
||||||
}
|
|
||||||
|
|
||||||
.wrap {
|
.wrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@ -87,12 +81,6 @@ li {
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fileInfo {
|
|
||||||
flex-grow: 1;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fileName {
|
.fileName {
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
@ -108,15 +96,4 @@ li {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fileVisual {
|
|
||||||
display: flex;
|
|
||||||
flex-shrink: 0;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: 25px;
|
|
||||||
width: 25px;
|
|
||||||
}
|
}
|
||||||
|
@ -952,7 +952,7 @@ export const SignPage = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<PdfMarking
|
<PdfMarking
|
||||||
files={getCurrentUserFiles(files, currentFileHashes, creatorFileHashes)}
|
files={getCurrentUserFiles(files, currentFileHashes)}
|
||||||
currentUserMarks={currentUserMarks}
|
currentUserMarks={currentUserMarks}
|
||||||
setIsReadyToSign={setIsReadyToSign}
|
setIsReadyToSign={setIsReadyToSign}
|
||||||
setCurrentUserMarks={setCurrentUserMarks}
|
setCurrentUserMarks={setCurrentUserMarks}
|
||||||
|
@ -170,23 +170,17 @@ export const VerifyPage = () => {
|
|||||||
|
|
||||||
const [currentFileHashes, setCurrentFileHashes] = useState<{
|
const [currentFileHashes, setCurrentFileHashes] = useState<{
|
||||||
[key: string]: string | null
|
[key: string]: string | null
|
||||||
}>({})
|
}>(fileHashes)
|
||||||
const [files, setFiles] = useState<{ [filename: string]: PdfFile }>({})
|
const [files, setFiles] = useState<{ [filename: string]: PdfFile }>({})
|
||||||
const [currentFile, setCurrentFile] = useState<CurrentUserFile | null>(null)
|
const [currentFile, setCurrentFile] = useState<CurrentUserFile | null>(null)
|
||||||
const [signatureFileHashes, setSignatureFileHashes] = useState<{
|
|
||||||
[key: string]: string
|
|
||||||
}>(fileHashes)
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setSignatureFileHashes(fileHashes)
|
|
||||||
}, [fileHashes])
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (Object.entries(files).length > 0) {
|
if (Object.entries(files).length > 0) {
|
||||||
const tmp = getCurrentUserFiles(files, fileHashes, signatureFileHashes)
|
const tmp = getCurrentUserFiles(files, fileHashes)
|
||||||
|
|
||||||
setCurrentFile(tmp[0])
|
setCurrentFile(tmp[0])
|
||||||
}
|
}
|
||||||
}, [signatureFileHashes, fileHashes, files])
|
}, [fileHashes, files])
|
||||||
|
|
||||||
const usersPubkey = useSelector((state: State) => state.auth.usersPubkey)
|
const usersPubkey = useSelector((state: State) => state.auth.usersPubkey)
|
||||||
const nostrController = NostrController.getInstance()
|
const nostrController = NostrController.getInstance()
|
||||||
@ -530,11 +524,7 @@ export const VerifyPage = () => {
|
|||||||
<>
|
<>
|
||||||
{currentFile !== null && (
|
{currentFile !== null && (
|
||||||
<FileList
|
<FileList
|
||||||
files={getCurrentUserFiles(
|
files={getCurrentUserFiles(files, currentFileHashes)}
|
||||||
files,
|
|
||||||
currentFileHashes,
|
|
||||||
signatureFileHashes
|
|
||||||
)}
|
|
||||||
currentFile={currentFile}
|
currentFile={currentFile}
|
||||||
setCurrentFile={setCurrentFile}
|
setCurrentFile={setCurrentFile}
|
||||||
handleDownload={handleExport}
|
handleDownload={handleExport}
|
||||||
@ -547,11 +537,7 @@ export const VerifyPage = () => {
|
|||||||
>
|
>
|
||||||
<SlimPdfView
|
<SlimPdfView
|
||||||
currentFile={currentFile}
|
currentFile={currentFile}
|
||||||
files={getCurrentUserFiles(
|
files={getCurrentUserFiles(files, currentFileHashes)}
|
||||||
files,
|
|
||||||
currentFileHashes,
|
|
||||||
signatureFileHashes
|
|
||||||
)}
|
|
||||||
parsedSignatureEvents={parsedSignatureEvents}
|
parsedSignatureEvents={parsedSignatureEvents}
|
||||||
/>
|
/>
|
||||||
</StickySideColumns>
|
</StickySideColumns>
|
||||||
|
@ -5,5 +5,4 @@ export interface CurrentUserFile {
|
|||||||
pdfFile: PdfFile
|
pdfFile: PdfFile
|
||||||
filename: string
|
filename: string
|
||||||
hash?: string
|
hash?: string
|
||||||
isHashValid: boolean
|
|
||||||
}
|
}
|
||||||
|
@ -72,20 +72,17 @@ export const timeout = (ms: number = 60000) => {
|
|||||||
* including its name, hash, and content
|
* including its name, hash, and content
|
||||||
* @param files
|
* @param files
|
||||||
* @param fileHashes
|
* @param fileHashes
|
||||||
* @param creatorFileHashes
|
|
||||||
*/
|
*/
|
||||||
export const getCurrentUserFiles = (
|
export const getCurrentUserFiles = (
|
||||||
files: { [filename: string]: PdfFile },
|
files: { [filename: string]: PdfFile },
|
||||||
fileHashes: { [key: string]: string | null },
|
fileHashes: { [key: string]: string | null }
|
||||||
creatorFileHashes: { [key: string]: string }
|
|
||||||
): CurrentUserFile[] => {
|
): CurrentUserFile[] => {
|
||||||
return Object.entries(files).map(([filename, pdfFile], index) => {
|
return Object.entries(files).map(([filename, pdfFile], index) => {
|
||||||
return {
|
return {
|
||||||
pdfFile,
|
pdfFile,
|
||||||
filename,
|
filename,
|
||||||
id: index + 1,
|
id: index + 1,
|
||||||
...(!!fileHashes[filename] && { hash: fileHashes[filename]! }),
|
...(!!fileHashes[filename] && { hash: fileHashes[filename]! })
|
||||||
isHashValid: creatorFileHashes[filename] === fileHashes[filename]
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user