Skip to content

Commit

Permalink
fix: Correctly load/set specific folders
Browse files Browse the repository at this point in the history
  • Loading branch information
kewisch committed Jan 21, 2024
1 parent 7880dd1 commit 947a593
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
3 changes: 3 additions & 0 deletions src/common/util.js
Expand Up @@ -14,6 +14,9 @@ export async function getValidatedDefaultFolders(accountNodes) {
let defaultFolders = [];

for (let folder of prefs.defaultFolders) {
if (!(folder.accountId in accountMap)) {
continue;
}
let node = accountMap[folder.accountId].lookup(folder.path, false);
if (node) {
defaultFolders.push(node.item);
Expand Down
14 changes: 10 additions & 4 deletions src/options/options.js
Expand Up @@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* Portions Copyright (C) Philipp Kewisch */

import { AccountNode } from "../common/foldernode.js";
import { AccountNode, FolderNode } from "../common/foldernode.js";
import { DEFAULT_PREFERENCES, getValidatedDefaultFolders } from "../common/util.js";

async function restore_options() {
Expand Down Expand Up @@ -74,7 +74,7 @@ async function setup_defaultfolders() {
let accounts = await browser.accounts.list();
let accountNodes = accounts.map(account => new AccountNode(account, skipArchive));
let folders = accountNodes.reduce((acc, node) => acc.concat([...node]), []);
let defaultFolders = await getValidatedDefaultFolders(accountNodes);
let defaultFolders = FolderNode.fromList(await getValidatedDefaultFolders(accountNodes), accountNodes);

let defaultFolderList = document.getElementById("default-folders");
defaultFolderList.accounts = accounts;
Expand All @@ -87,21 +87,27 @@ async function setup_defaultfolders() {
folderPicker.initItems(folders, [], true);

folderPicker.addEventListener("item-selected", (event) => {
defaultFolderSet.add(event.detail);
let newNode = FolderNode.fromList([event.detail], accountNodes)[0];

defaultFolderSet.add(newNode);
let allItems = [...defaultFolderSet];

defaultFolderList.allItems = allItems;
defaultFolderList.repopulate();
folderPicker.searchValue = "";

let storageData = allItems.map(item => ({ accountId: item.accountId, path: item.path }));
browser.storage.local.set({ defaultFolders: storageData });
});

defaultFolderList.addEventListener("item-deleted", (event) => {
defaultFolderSet.delete(event.detail);
let oldNode = FolderNode.fromList([event.detail], accountNodes)[0];

defaultFolderSet.delete(oldNode);
let allItems = [...defaultFolderSet];

defaultFolderList.allItems = allItems;
defaultFolderList.repopulate();

let storageData = allItems.map(item => ({ accountId: item.accountId, path: item.path }));
browser.storage.local.set({ defaultFolders: storageData });
Expand Down

0 comments on commit 947a593

Please sign in to comment.