feat: after creation logic

This commit is contained in:
Arman
2022-08-23 16:46:20 +02:00
parent 9d4ae0329a
commit a609a741c7
4 changed files with 37 additions and 13 deletions
+2 -4
View File
@@ -8,8 +8,6 @@
import CreateMember from './_createMember.svelte';
import Create from './_createOrganization.svelte';
const created = () => console.log('test');
onMount(handle);
afterNavigate(handle);
@@ -64,5 +62,5 @@
</Shell>
{/if}
<Create bind:show={$newOrgModal} on:created={() => created()} />
<CreateMember bind:showCreate={$newMemberModal} on:created={() => created()} />
<Create bind:show={$newOrgModal} />
<CreateMember bind:showCreate={$newMemberModal} />
+3 -2
View File
@@ -6,7 +6,8 @@
import { addNotification } from '$lib/stores/notifications';
import { sdkForConsole } from '$lib/stores/sdk';
import { createEventDispatcher } from 'svelte';
import { organization } from './store';
import { organization, memberList } from './store';
import { pageLimit } from '$lib/stores/layout';
export let showCreate = false;
@@ -29,6 +30,7 @@
type: 'success',
message: `Invite has been sent to ${email}`
});
memberList.load($organization.$id, '', $pageLimit, 0);
dispatch('created', team);
} catch ({ message }) {
error = message;
@@ -54,7 +56,6 @@
id="name"
label="Name (optional)"
placeholder="Enter name"
autofocus={true}
bind:value={name} />
</FormList>
<svelte:fragment slot="footer">
+16 -3
View File
@@ -5,6 +5,8 @@
import { addNotification } from '$lib/stores/notifications';
import { sdkForConsole } from '$lib/stores/sdk';
import { createEventDispatcher } from 'svelte';
import { organization, organizationList } from './store';
import { titleDropdown } from '$lib/stores/layout';
export let show = false;
@@ -17,13 +19,18 @@
const create = async () => {
try {
await sdkForConsole.teams.create(id ?? 'unique()', name);
name = null;
const team = await sdkForConsole.teams.create(id ?? 'unique()', name);
dispatch('created');
await organizationList.load();
titleDropdown.set($organizationList.teams);
organization.set(team);
addNotification({
type: 'success',
message: `${name} has been created`
});
name = null;
id = null;
show = false;
} catch ({ message }) {
error = message;
}
@@ -34,7 +41,13 @@
<Modal {error} size="big" bind:show>
<svelte:fragment slot="header">Create New Organization</svelte:fragment>
<FormList>
<InputText id="name" label="Name" bind:value={name} required />
<InputText
id="name"
label="Name"
placeholder="Enter name"
bind:value={name}
autofocus={true}
required />
{#if !showDropdown}
<div>
<Pill button on:click={() => (showDropdown = !showDropdown)}>
+16 -4
View File
@@ -17,15 +17,26 @@
import { sdkForConsole } from '$lib/stores/sdk';
import type { Models } from '@aw-labs/appwrite-console';
import { pageLimit } from '$lib/stores/layout';
import { page } from '$app/stores';
let search = '';
let offset: number = null;
let selectedMember: Models.Membership;
let showDelete = false;
const url = `${$page.url.origin}/console/`;
const getAvatar = (name: string) => sdkForConsole.avatars.getInitials(name, 32, 32).toString();
const getAvatar = (name: string) =>
sdkForConsole.avatars.getInitials(name, 120, 120).toString();
const deleted = () => memberList.load($organization.$id, search, $pageLimit, offset ?? 0);
const resend = async (member: Models.Membership) =>
await sdkForConsole.teams.createMembership(
$organization.$id,
member.userEmail,
member.roles,
url,
member.userName
);
$: if (search) offset = 0;
$: memberList.load($organization.$id, search, $pageLimit, offset ?? 0);
@@ -58,7 +69,7 @@
<TableCell title="Name">
<div class="u-flex u-gap-12 u-cross-center">
<Avatar
size={32}
size={40}
src={getAvatar(member.userName)}
name={member.userName} />
<span class="text u-trim"
@@ -71,7 +82,7 @@
<TableCellText title="Email">{member.userEmail}</TableCellText>
<TableCell title="Roles">
{#if member.invited && !member.joined}
<Button secondary>Resend</Button>
<Button secondary on:click={() => resend(member)}>Resend</Button>
{:else}
{member.roles}
{/if}
@@ -81,7 +92,8 @@
<button
class="button is-only-icon is-text"
aria-label="Delete item"
on:click|preventDefault={() => {
disabled={$memberList.total === 1}
on:click={() => {
selectedMember = member;
showDelete = true;
}}>