Track your online rabbitholes!

refactor: move delete project button to sidebar

authored by Govind Mohan and committed by Govind Mohan 3503699a df40b427

+1 -1
src/lib/Rabbithole.svelte
··· 122 122 hidden={!opened}> 123 123 <Sidebar 124 124 projects={projects} 125 + on:projectDelete={deleteActiveProject} 125 126 on:projectChange={updateActiveProject} 126 127 on:newProject={createNewProject} 127 128 on:newProjectSync={createNewProjectFromWindow} ··· 130 131 <Timeline 131 132 on:websiteDelete={deleteWebsite} 132 133 on:projectRename={renameActiveProject} 133 - on:projectDelete={deleteActiveProject} 134 134 activeProject={activeProject} 135 135 websites={websites} /> 136 136 </AppShell>
+20 -4
src/lib/Sidebar.svelte
··· 11 11 export let projects; 12 12 13 13 let newRabbitholeName = ""; 14 - let isHovering = false; 14 + let isHoveringOverSync = false; 15 + let isHoveringOverDelete = false; 15 16 const textStyleOverride = { 16 17 marginTop: "15px" 17 18 } ··· 45 46 async function saveAllTabsToActiveProject() { 46 47 dispatch('projectSync'); 47 48 } 49 + 50 + async function deleteProject() { 51 + dispatch("projectDelete"); 52 + } 48 53 </script> 49 54 50 55 <div class="sidebar"> ··· 58 63 id="project-selector" 59 64 projects={projects} 60 65 handleProjectChange={handleProjectChange} /> 61 - <Tooltip {isHovering} label="Save all tabs in window to current project"> 66 + <Tooltip {isHoveringOverSync} label="Save all tabs in window to current project"> 62 67 <Button 63 68 on:click={saveAllTabsToActiveProject} 64 - on:mouseenter={()=>{isHovering=true}} 65 - on:mouseleave={()=>{isHovering=false}} 69 + on:mouseenter={()=>{isHoveringOverSync=true}} 70 + on:mouseleave={()=>{isHoveringOverSync=false}} 66 71 variant='light' 67 72 color='blue' 68 73 > 69 74 Sync window 75 + </Button> 76 + </Tooltip> 77 + <Tooltip {isHoveringOverDelete} label="This action is irreversible!"> 78 + <Button 79 + on:click={deleteProject} 80 + on:mouseenter={()=>{isHoveringOverDelete=true}} 81 + on:mouseleave={()=>{isHoveringOverDelete=false}} 82 + variant='filled' 83 + color='red' 84 + > 85 + Delete Project 70 86 </Button> 71 87 </Tooltip> 72 88 <Text weight="bold" size="lg" override={textStyleOverride}>Create Project</Text>
+1 -12
src/lib/Timeline.svelte
··· 14 14 let nameClicked = false; 15 15 let isHovering = false; 16 16 17 - async function deleteProject() { 18 - dispatch("projectDelete"); 19 - } 20 - 21 17 async function renameProject() { 22 18 if (activeProject.name === "") { 23 19 // TODO: error modal ··· 50 46 <img class="logo" alt="Rabbithole logo" src="../assets/icons/logo.png"> 51 47 </div> 52 48 <div class="input-div"> 53 - <Tooltip {isHovering} label="Click to rename/delete project"> 49 + <Tooltip {isHovering} label="Click to rename project"> 54 50 <Input id="project-name" 55 51 icon={Pencil1} 56 52 variant="unstyled" ··· 69 65 color='blue' 70 66 > 71 67 Rename 72 - </Button> 73 - <Button 74 - on:click={deleteProject} 75 - variant='filled' 76 - color='red' 77 - > 78 - Delete 79 68 </Button> 80 69 {/if} 81 70 </Group>