diff --git a/src/main.ts b/src/main.ts index ad5896c..da05a0c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -200,7 +200,12 @@ export default class AsanaPlugin extends Plugin { const pinnedProjectIds = new Set(this.settings.pinnedProjects); // Add "My Tasks" as a special project option - const myTasksProject = { name: "My Tasks", gid: userData.gid, isPinned: true, isMyTasks: true }; + const myTasksProject = { + name: "My Tasks", + gid: userData.gid, + isPinned: this.settings.pinMyTasks, + isMyTasks: true + }; // Separate pinned and non-pinned projects const pinnedProjects = projects @@ -211,8 +216,10 @@ export default class AsanaPlugin extends Plugin { .filter((p: any) => !pinnedProjectIds.has(p.gid) && !pinnedProjectIds.has(p.name)) .map((p: any) => ({ name: p.name, gid: p.gid, isPinned: false })); - // Combine My Tasks, pinned projects, and other projects - const projectOptions = [myTasksProject, ...pinnedProjects, ...otherProjects]; + // Combine My Tasks (if pinned), pinned projects, and other projects + const projectOptions = this.settings.pinMyTasks + ? [myTasksProject, ...pinnedProjects, ...otherProjects] + : [...pinnedProjects, myTasksProject, ...otherProjects]; // Prompt for project selection const project = await this.promptForSelection('Select project', projectOptions); diff --git a/src/settings/settings.ts b/src/settings/settings.ts index ef64ea8..6bf40b5 100644 --- a/src/settings/settings.ts +++ b/src/settings/settings.ts @@ -10,6 +10,7 @@ export interface AsanaPluginSettings { pinnedProjects: string[]; enableMarkdownLink: boolean; showArchivedProjects: boolean; + pinMyTasks: boolean; } /** @@ -21,6 +22,7 @@ export const DEFAULT_SETTINGS: AsanaPluginSettings = { pinnedProjects: [], enableMarkdownLink: true, showArchivedProjects: false, + pinMyTasks: true, }; /** @@ -105,6 +107,18 @@ export class AsanaSettingTab extends PluginSettingTab { }); }); + // Toggle: Pin My Tasks + new Setting(containerEl) + .setName('Pin My Tasks') + .setDesc('Always show My Tasks at the top of the project selector.') + .addToggle((toggle: ToggleComponent) => { + toggle.setValue(this.plugin.settings.pinMyTasks) + .onChange(async (value: boolean) => { + this.plugin.settings.pinMyTasks = value; + await this.plugin.saveSettings(); + }); + }); + // Toggle: Show Archived Projects new Setting(containerEl) .setName('Show archived projects')