Compare commits

...

2 Commits

Author SHA1 Message Date
Brieuc Dubois 9597e0a250 Fix modalcard key issue 2024-01-12 00:29:17 +01:00
Brieuc Dubois 3a2b75263f Default view 2024-01-11 23:38:19 +01:00
4 changed files with 31 additions and 15 deletions

View File

@ -8,8 +8,8 @@
export let card: Card; export let card: Card;
export let showModal: boolean; export let showModal: boolean;
let newTitle = card.title; let newTitle: string = card.title;
let newContent = card.content; let newContent: string = card.content;
async function save(closeModal: boolean = true) { async function save(closeModal: boolean = true) {
if (card.title !== newTitle || card.content !== newContent) { if (card.title !== newTitle || card.content !== newContent) {
@ -21,22 +21,28 @@
} }
</script> </script>
<svelte:window
on:keydown|once={(e) => {
if (e.key === 'Escape') return save(true);
}}
/>
<!-- svelte-ignore a11y-click-events-have-key-events --> <!-- svelte-ignore a11y-click-events-have-key-events -->
<!-- svelte-ignore a11y-no-static-element-interactions --> <!-- svelte-ignore a11y-no-static-element-interactions -->
<div class="modal" on:click={() => save(true)}> <div class="modal" on:click|self|preventDefault={() => save(true)}>
<div class="content" on:click|stopPropagation> <div class="content" on:click|stopPropagation>
<div class="header"> <div class="header">
<input class="title" bind:value={newTitle} on:blur={() => save(false)} /> <input class="title" bind:value={newTitle} on:blur={() => save(false)} />
<div class="buttons"> <div class="buttons">
<button <button
on:click={async () => { on:click|once={async () => {
await card.delete(); await card.delete();
showModal = false; showModal = false;
}} }}
> >
<TrashIcon /> <TrashIcon />
</button> </button>
<button on:click={() => (showModal = false)}> <button on:click|once={() => (showModal = false)}>
<CloseIcon /> <CloseIcon />
</button> </button>
</div> </div>

View File

@ -1,12 +1,12 @@
<script lang="ts"> <script lang="ts">
import Card, { cards } from '$lib/types/Card';
import CardComponent from '../card/Card.svelte';
import AddIcon from '../icons/AddIcon.svelte';
import type TagOption from '$lib/types/TagOption';
import ProjectTag, { projectTags } from '$lib/types/ProjectTag';
import type Project from '$lib/types/Project';
import currentDraggedCard from '$lib/stores/currentDraggedCard'; import currentDraggedCard from '$lib/stores/currentDraggedCard';
import currentView from '$lib/stores/currentView'; import currentView from '$lib/stores/currentView';
import Card, { cards } from '$lib/types/Card';
import type Project from '$lib/types/Project';
import ProjectTag, { projectTags } from '$lib/types/ProjectTag';
import type TagOption from '$lib/types/TagOption';
import CardComponent from '../card/Card.svelte';
import AddIcon from '../icons/AddIcon.svelte';
export let project: Project; export let project: Project;
export let option: TagOption | null = null; export let option: TagOption | null = null;
@ -45,6 +45,8 @@
if (!card) return; if (!card) return;
await card.updateTitle(`untitled ${card.id}`);
if ($currentView?.filters && $currentView.filters.length > 0) { if ($currentView?.filters && $currentView.filters.length > 0) {
for (const projectTag of $projectTags) { for (const projectTag of $projectTags) {
for (const filter of $currentView.filters) { for (const filter of $currentView.filters) {
@ -105,7 +107,7 @@
</span> </span>
</header> </header>
<ul> <ul>
{#each columnCards as card} {#each columnCards as card (card.id)}
<CardComponent {card} /> <CardComponent {card} />
{/each} {/each}
</ul> </ul>

View File

@ -15,7 +15,8 @@
{#if tagType} {#if tagType}
<td> <td>
{#if tagType?.hasOptions} {#if tagType?.hasOptions}
<SelectTags multiple={false} {projectTag} {card} {cardTag} /> <!-- multiple={false} -->
<SelectTags {projectTag} {card} {cardTag} />
{:else if !tagType?.hasOptions} {:else if !tagType?.hasOptions}
<input /> <input />
{/if} {/if}

View File

@ -1,11 +1,14 @@
<script lang="ts"> <script lang="ts">
import { page } from '$app/stores';
import projectsApi from '$lib/api/projectsApi'; import projectsApi from '$lib/api/projectsApi';
import ProjectComponent from '$lib/components/project/Project.svelte';
import Sidebar from '$lib/components/project/Sidebar.svelte'; import Sidebar from '$lib/components/project/Sidebar.svelte';
import currentView from '$lib/stores/currentView';
import type Project from '$lib/types/Project'; import type Project from '$lib/types/Project';
import { views } from '$lib/types/View';
import { SvelteToast } from '@zerodevx/svelte-toast'; import { SvelteToast } from '@zerodevx/svelte-toast';
import { onMount } from 'svelte'; import { onMount } from 'svelte';
import ProjectComponent from '$lib/components/project/Project.svelte'; import { get } from 'svelte/store';
import { page } from '$app/stores';
let project: Project; let project: Project;
@ -20,6 +23,10 @@
await projectsApi.getTags(project); await projectsApi.getTags(project);
await projectsApi.getViews(project); await projectsApi.getViews(project);
await projectsApi.getCards(project); await projectsApi.getCards(project);
if (get(views).length > 0) {
currentView.set(get(views)[0]);
}
}); });
</script> </script>