Skip to content

Commit d11e203

Browse files
authored
Merge pull request #40 from CodeDead/feature/browser-vault
Enable vaults inside the browser
2 parents 17f190a + 3cccc86 commit d11e203

File tree

11 files changed

+184
-45
lines changed

11 files changed

+184
-45
lines changed

src/components/App/index.jsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,7 @@ const App = () => {
128128
<Route exact path="/advanced" element={<Advanced />} />
129129
<Route exact path="/generate" element={<Generate />} />
130130
<Route exact path="/advisor" element={<Advisor />} />
131-
{/* eslint-disable-next-line no-underscore-dangle */}
132-
{window.__TAURI__ ? (<Route exact path="/vault" element={<Vault />} />) : null}
131+
<Route exact path="/vault" element={<Vault />} />
133132
<Route exact path="/settings" element={<Settings />} />
134133
<Route exact path="/about" element={<About />} />
135134
<Route path="*" element={<NotFound />} />

src/components/ClippedDrawer/index.jsx

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -149,30 +149,27 @@ const ClippedDrawer = () => {
149149
{textVisible ? <ListItemText primary={language.advisor} /> : null}
150150
</ListItemButton>
151151
</ListItem>
152-
{/* eslint-disable-next-line no-underscore-dangle */}
153-
{window.__TAURI__ ? (
154-
<ListItem disablePadding sx={{ display: textVisible ? 'block' : null }}>
155-
<ListItemButton
156-
selected={pageIndex === 4}
157-
onClick={() => navigate('/vault')}
152+
<ListItem disablePadding sx={{ display: textVisible ? 'block' : null }}>
153+
<ListItemButton
154+
selected={pageIndex === 4}
155+
onClick={() => navigate('/vault')}
156+
sx={{
157+
minHeight: 48,
158+
justifyContent: textVisible ? 'initial' : 'center',
159+
px: 2.5,
160+
}}
161+
>
162+
<ListItemIcon
158163
sx={{
159-
minHeight: 48,
160-
justifyContent: textVisible ? 'initial' : 'center',
161-
px: 2.5,
164+
minWidth: textVisible ? null : 0,
165+
mr: textVisible ? null : 'auto',
162166
}}
163167
>
164-
<ListItemIcon
165-
sx={{
166-
minWidth: textVisible ? null : 0,
167-
mr: textVisible ? null : 'auto',
168-
}}
169-
>
170-
<FolderIcon />
171-
</ListItemIcon>
172-
{textVisible ? <ListItemText primary={language.vault} /> : null}
173-
</ListItemButton>
174-
</ListItem>
175-
) : null}
168+
<FolderIcon />
169+
</ListItemIcon>
170+
{textVisible ? <ListItemText primary={language.vault} /> : null}
171+
</ListItemButton>
172+
</ListItem>
176173
</List>
177174
<Divider />
178175
<List>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import React, { useState } from 'react';
2+
import Dialog from '@mui/material/Dialog';
3+
import DialogTitle from '@mui/material/DialogTitle';
4+
import DialogContent from '@mui/material/DialogContent';
5+
import DialogActions from '@mui/material/DialogActions';
6+
import Button from '@mui/material/Button';
7+
import TextField from '@mui/material/TextField';
8+
9+
const SelectFileDialog = ({
10+
open, onClose, onAccept, selectFileLabel, cancelLabel, acceptLabel,
11+
}) => {
12+
const [data, setData] = useState(null);
13+
14+
/**
15+
* Close the dialog
16+
*/
17+
const handleClose = () => {
18+
setData(null);
19+
if (onClose) {
20+
onClose();
21+
}
22+
};
23+
24+
const handleFileChange = (e) => {
25+
e.preventDefault();
26+
const reader = new FileReader();
27+
reader.onload = async (ev) => {
28+
const text = (ev.target.result);
29+
setData(text);
30+
};
31+
reader.readAsText(e.target.files[0]);
32+
};
33+
34+
/**
35+
* Accept the file
36+
*/
37+
const accept = () => {
38+
if (onAccept && data && data.length > 0) {
39+
onAccept(data);
40+
}
41+
handleClose();
42+
};
43+
44+
return (
45+
<Dialog
46+
open={open}
47+
onClose={handleClose}
48+
aria-labelledby="alert-dialog-title"
49+
aria-describedby="alert-dialog-description"
50+
>
51+
<DialogTitle id="alert-dialog-title">{selectFileLabel}</DialogTitle>
52+
<DialogContent>
53+
<TextField
54+
type="file"
55+
onChange={handleFileChange}
56+
/>
57+
</DialogContent>
58+
<DialogActions>
59+
<Button onClick={handleClose}>
60+
{cancelLabel}
61+
</Button>
62+
<Button
63+
onClick={accept}
64+
autoFocus
65+
disabled={!data || data.length === 0}
66+
>
67+
{acceptLabel}
68+
</Button>
69+
</DialogActions>
70+
</Dialog>
71+
);
72+
};
73+
74+
export default SelectFileDialog;

src/languages/de_de.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@
9898
"editPassword": "Passwort bearbeiten",
9999
"close": "Schließen",
100100
"copy": "Kopieren",
101-
"createOrOpenVault": "Erstellen oder öffnen Sie einen Tresor"
101+
"createOrOpenVault": "Erstellen oder öffnen Sie einen Tresor",
102+
"selectFile": "Datei auswählen"
102103
}

src/languages/en_us.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@
9898
"editPassword": "Edit password",
9999
"close": "Close",
100100
"copy": "Copy",
101-
"createOrOpenVault": "Create or open a vault"
101+
"createOrOpenVault": "Create or open a vault",
102+
"selectFile": "Select file"
102103
}

src/languages/fr_fr.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@
9898
"editPassword": "Modifier le mot de passe",
9999
"close": "Fermer",
100100
"copy": "Copier",
101-
"createOrOpenVault": "Créer ou ouvrir un coffre-fort"
101+
"createOrOpenVault": "Créer ou ouvrir un coffre-fort",
102+
"selectFile": "Sélectionner un fichier"
102103
}

src/languages/jp_jp.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@
9898
"editPassword": "パスワードを編集する",
9999
"close": "閉じる",
100100
"copy": "コピー",
101-
"createOrOpenVault": "金庫を作成または開く"
101+
"createOrOpenVault": "金庫を作成または開く",
102+
"selectFile": "ファイルを選択"
102103
}

src/languages/nl_nl.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@
9898
"editPassword": "Wachtwoord bewerken",
9999
"close": "Sluiten",
100100
"copy": "Kopiëren",
101-
"createOrOpenVault": "Maak een nieuwe kluis of open een bestaande kluis"
101+
"createOrOpenVault": "Maak een nieuwe kluis of open een bestaande kluis",
102+
"selectFile": "Selecteer een bestand"
102103
}

src/languages/ru_ru.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@
9898
"editPassword": "Изменить пароль",
9999
"close": "Закрыть",
100100
"copy": "Копировать",
101-
"createOrOpenVault": "Создать или открыть сейф"
101+
"createOrOpenVault": "Создать или открыть сейф",
102+
"selectFile": "Выбрать файл"
102103
}

src/languages/zh_cn.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@
9898
"editPassword": "编辑密码",
9999
"close": "关闭",
100100
"copy": "复制",
101-
"createOrOpenVault": "创建或打开保险库"
101+
"createOrOpenVault": "创建或打开保险库",
102+
"selectFile": "选择文件"
102103
}

0 commit comments

Comments
 (0)