implement creation of link on first step in backend
This commit is contained in:
@@ -44,31 +44,3 @@ window.liveSocket = liveSocket
|
||||
window.Components = {
|
||||
SplashPage, JustPage, ForPage, YouPage
|
||||
}
|
||||
|
||||
// const root_el = document.getElementById("root");
|
||||
// const page = root_el.getAttribute("page")
|
||||
// let result;
|
||||
|
||||
// switch(page) {
|
||||
// case "splash":
|
||||
// result = <SplashPage />
|
||||
// break;
|
||||
// case "just":
|
||||
// result = <JustPage />
|
||||
// break;
|
||||
// case "for":
|
||||
// case "you":
|
||||
// case "identify":
|
||||
// case "revealed":
|
||||
// default:
|
||||
// null
|
||||
// break;
|
||||
// }
|
||||
|
||||
// ReactDOM.render(<React.StrictMode>
|
||||
// <GlobalStyle />
|
||||
// { result }
|
||||
// </React.StrictMode>
|
||||
// ,
|
||||
// root_el
|
||||
// );
|
@@ -7,7 +7,6 @@ const JustPage = () => {
|
||||
const [secretInput, setSecretInput] = useState("");
|
||||
const [fileInput, setFileInput] = useState<File | null>(null);
|
||||
const [fileName, setFileName] = useState("");
|
||||
const [encryptedSecret, setEncryptedSecret] = useState("");
|
||||
|
||||
const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
|
||||
setSecretInput(e.target.value);
|
||||
@@ -45,18 +44,13 @@ const JustPage = () => {
|
||||
encoded
|
||||
);
|
||||
|
||||
// encrypted will be sent to lumen backend
|
||||
HexMix.arrayBufferToString(encrypted, (result: string) => {
|
||||
setEncryptedSecret(result);
|
||||
});
|
||||
|
||||
const keyHex = HexMix.uint8ToHex(new Uint8Array(exported));
|
||||
const ivHex = HexMix.uint8ToHex(iv);
|
||||
|
||||
const formData = new FormData();
|
||||
const blobData = new Blob([encrypted]);
|
||||
|
||||
formData.append('blob', blobData);
|
||||
formData.append('text_content', blobData);
|
||||
formData.append('filetype', 'text/plain');
|
||||
formData.append('filename', 'secret.txt');
|
||||
|
||||
@@ -94,7 +88,6 @@ const JustPage = () => {
|
||||
</TextAlignWrapper>
|
||||
<Spacer space="1.6rem" />
|
||||
<FileInput id="fileInput" value={fileName} handleFile={handleFile} />
|
||||
{ encryptedSecret ? "" : encryptedSecret }
|
||||
{ fileInput ? "" : ""}
|
||||
<Spacer space="4rem" />
|
||||
<div
|
||||
|
33
assets/js/utils/hexmix.ts
Normal file
33
assets/js/utils/hexmix.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
export default {
|
||||
uint8ToHex(data: Uint8Array): string {
|
||||
return Array.prototype.map.call(data, (byte: number) => {
|
||||
return ('00' + byte.toString(16)).slice(-2);
|
||||
}).join('');
|
||||
},
|
||||
hexToUint8(data: string): Uint8Array {
|
||||
const hexArray = data.match(/.{1,2}/g);
|
||||
if (!hexArray) return new Uint8Array(0);
|
||||
|
||||
return Uint8Array.from(hexArray.map((char: string) => {
|
||||
return parseInt(char, 16)
|
||||
}));
|
||||
},
|
||||
arrayBufferToString(buf: ArrayBuffer, callback: Function) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = function (event: ProgressEvent<FileReader>) {
|
||||
callback(event?.target?.result);
|
||||
};
|
||||
reader.onerror = function (event: ProgressEvent<FileReader>) {
|
||||
alert(event?.target?.error);
|
||||
};
|
||||
reader.readAsBinaryString(new Blob([ buf ],
|
||||
{ type: 'application/octet-stream' }));
|
||||
},
|
||||
stringToArrayBuffer(str: string) {
|
||||
const array = new Uint8Array(str.length);
|
||||
for(let i = 0; i < str.length; i++) {
|
||||
array[i] = str.charCodeAt(i);
|
||||
}
|
||||
return array.buffer
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user