Skip to content

Commit a6af563

Browse files
committed
Remember settings tab
1 parent 00ee361 commit a6af563

File tree

5 files changed

+39
-19
lines changed

5 files changed

+39
-19
lines changed

app/settings/index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<div class="flex h-screen flex-col justify-between overflow-visible bg-gray-900">
1818
<div class="flex flex-col">
1919
<div class="mb-1 mt-5 mr-4 ml-4">
20-
<button id="setting " class="buttonm settings" onclick="menu(event, 'setting')">
20+
<button id="general " class="buttonm general" onclick="menu('general')">
2121
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
2222
<path stroke-linecap="round" stroke-linejoin="round" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" />
2323
<path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" />
@@ -26,15 +26,15 @@
2626
</button>
2727
</div>
2828
<div class="mb-1 mt-1 mr-4 ml-4">
29-
<button id="codes " class="buttonm codes" onclick="menu(event, 'codes')">
29+
<button id="codes " class="buttonm codes" onclick="menu('codes')">
3030
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
3131
<path stroke-linecap="round" stroke-linejoin="round" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z" />
3232
</svg>
3333
<span data-loc>Codes</span>
3434
</button>
3535
</div>
3636
<div class="mb-1 mt-1 mr-4 ml-4">
37-
<button id="shortcuts " class="buttonm shortcuts" onclick="menu(event, 'shortcuts')">
37+
<button id="shortcuts " class="buttonm shortcuts" onclick="menu('shortcuts')">
3838
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
3939
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
4040
<rect x="2" y="6" width="20" height="12" rx="2"></rect>
@@ -50,7 +50,7 @@
5050
</button>
5151
</div>
5252
<div class="mb-1 mt-1 mr-4 ml-4">
53-
<button id="experimental " class="buttonm experimental" onclick="menu(event, 'experimental')">
53+
<button id="experimental " class="buttonm experimental" onclick="menu('experimental')">
5454
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
5555
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z" />
5656
</svg>
@@ -214,7 +214,7 @@ <h4 data-loc>You can configure the app settings here.</h4>
214214

215215
<!-- settings -->
216216
<div class="mx-auto mt-20 mb-20 w-3/5 rounded-2xl bg-gray-700 pt-5 pb-10 text-center">
217-
<div id="setting" class="tabcontent">
217+
<div id="general" class="tabcontent">
218218
<h3 data-loc>Launch on startup</h3>
219219
<h4 data-loc>Start Authme after your computer started. Authme will start on the system tray.</h4>
220220
<div class="mx-auto flex h-[68px] w-72 items-center justify-center rounded-full bg-white">

app/settings/src/js/index.js

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -806,47 +806,54 @@ const hide = () => {
806806
/**
807807
* Menu
808808
*/
809-
document.querySelector(".settings").disabled = true
810-
document.querySelector(".settings").classList.add("buttonmselected")
809+
document.querySelector(".general").disabled = true
810+
document.querySelector(".general").classList.add("buttonmselected")
811811
let shortcut = false
812812

813813
/**
814814
* Remove menu button styles
815815
*/
816816
const removeButtonStyles = () => {
817817
document.querySelector(".shortcuts").classList.remove("buttonmselected")
818-
document.querySelector(".settings").classList.remove("buttonmselected")
818+
document.querySelector(".general").classList.remove("buttonmselected")
819819
document.querySelector(".experimental").classList.remove("buttonmselected")
820820
document.querySelector(".codes").classList.remove("buttonmselected")
821821
}
822822

823823
// control menu
824-
const menu = (evt, name) => {
824+
const menu = (name) => {
825825
let i
826826

827827
if (name === "shortcuts") {
828+
storage.settings_page = "shortcuts"
829+
dev ? localStorage.setItem("dev_storage", JSON.stringify(storage)) : localStorage.setItem("storage", JSON.stringify(storage))
830+
828831
removeButtonStyles()
829832

830833
document.querySelector(".shortcuts").classList.add("buttonmselected")
831834

832835
document.querySelector(".shortcuts").disabled = true
833-
document.querySelector(".settings").disabled = false
836+
document.querySelector(".general").disabled = false
834837
document.querySelector(".experimental").disabled = false
835838
document.querySelector(".codes").disabled = false
836839

837840
window.location = `${`${window.location}`.replace(/#[A-Za-z0-9_]*$/, "")}#header`
838841

839842
shortcut = true
840843

841-
checkForIssuers()
844+
setTimeout(() => {
845+
checkForIssuers()
846+
}, 100)
842847

843848
ipc.send("shortcuts")
844-
} else if (name === "setting") {
849+
} else if (name === "general") {
850+
storage.settings_page = "general"
851+
845852
removeButtonStyles()
846853

847-
document.querySelector(".settings").classList.add("buttonmselected")
854+
document.querySelector(".general").classList.add("buttonmselected")
848855

849-
document.querySelector(".settings").disabled = true
856+
document.querySelector(".general").disabled = true
850857
document.querySelector(".shortcuts").disabled = false
851858
document.querySelector(".experimental").disabled = false
852859
document.querySelector(".codes").disabled = false
@@ -859,12 +866,14 @@ const menu = (evt, name) => {
859866
shortcut = false
860867
}
861868
} else if (name === "experimental") {
869+
storage.settings_page = "experimental"
870+
862871
removeButtonStyles()
863872

864873
document.querySelector(".experimental").classList.add("buttonmselected")
865874

866875
document.querySelector(".experimental").disabled = true
867-
document.querySelector(".settings").disabled = false
876+
document.querySelector(".general").disabled = false
868877
document.querySelector(".shortcuts").disabled = false
869878
document.querySelector(".codes").disabled = false
870879

@@ -876,12 +885,14 @@ const menu = (evt, name) => {
876885
shortcut = false
877886
}
878887
} else if (name === "codes") {
888+
storage.settings_page = "codes"
889+
879890
removeButtonStyles()
880891

881892
document.querySelector(".codes").classList.add("buttonmselected")
882893

883894
document.querySelector(".experimental").disabled = false
884-
document.querySelector(".settings").disabled = false
895+
document.querySelector(".general").disabled = false
885896
document.querySelector(".shortcuts").disabled = false
886897
document.querySelector(".codes").disabled = true
887898

@@ -905,7 +916,14 @@ const menu = (evt, name) => {
905916
}
906917

907918
document.getElementById(name).style.display = "block"
908-
evt.currentTarget.className += " active"
919+
920+
dev ? localStorage.setItem("dev_storage", JSON.stringify(storage)) : localStorage.setItem("storage", JSON.stringify(storage))
921+
}
922+
923+
let /** @type{LibStorage} */ storage = dev ? JSON.parse(localStorage.getItem("dev_storage")) : JSON.parse(localStorage.getItem("storage"))
924+
925+
if (storage.settings_page !== "general" && storage.settings_page !== undefined) {
926+
menu(storage.settings_page)
909927
}
910928

911929
/**

app/settings/src/js/security.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ module.exports = {
3030
const salt = aes.generateSalt()
3131
const backup_key = aes.generateRandomKey(salt)
3232

33-
console.log(backup_key.toString("base64"))
3433
const backup_file = aes.encrypt(decrypted, backup_key)
3534

35+
console.log(backup_file.toString("base64"))
36+
3637
decrypted.fill(0)
3738
password.fill(0)
3839
key.fill(0)

app/settings/src/js/shortcuts.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ const createGlobalShortcuts = () => {
127127

128128
createGlobalShortcuts()
129129

130-
let /** @type{LibStorage} */ storage = dev ? JSON.parse(localStorage.getItem("dev_storage")) : JSON.parse(localStorage.getItem("storage"))
130+
/** @type{LibStorage} */ storage = dev ? JSON.parse(localStorage.getItem("dev_storage")) : JSON.parse(localStorage.getItem("storage"))
131131

132132
/**
133133
* Edit, reset, delete codes

lib/typedef.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
* @property {string} password - Saved password
7171
* @property {string} key - Encryption key used to encrypt codes
7272
* @property {string[]} issuers - List of issuers
73+
* @property {string} settings_page - Current settings page
7374
*/
7475

7576
/**

0 commit comments

Comments
 (0)