From b43d14e8ef62416e0219539764133ad1d9dfb46b Mon Sep 17 00:00:00 2001 From: davay Date: Sun, 30 Apr 2023 01:11:38 +0700 Subject: [PATCH] feat: project form getting form --- src/project/ProjectForm.vue | 3 +++ src/project/ProjectList.vue | 4 +--- src/project/useProject.ts | 15 +++++++-------- src/room/useRoom.ts | 3 +-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/project/ProjectForm.vue b/src/project/ProjectForm.vue index 45f4b077e..d452efd65 100644 --- a/src/project/ProjectForm.vue +++ b/src/project/ProjectForm.vue @@ -6,6 +6,8 @@ const props = defineProps({ title: { type: String, default: 'Project0' } }) +const emit = defineEmits(['added']) + const { newProject, addProject } = useNewProject() watchEffect(() => { @@ -23,5 +25,6 @@ watchEffect(() => { h3 Title: input(type="text" v-model="newProject.title") + button.button(@click="addProject(()=>$emit('added'))") ADD PROJECT pre.text-xs {{ newProject }} \ No newline at end of file diff --git a/src/project/ProjectList.vue b/src/project/ProjectList.vue index efbfd1a3a..77cb44fbb 100644 --- a/src/project/ProjectList.vue +++ b/src/project/ProjectList.vue @@ -10,8 +10,6 @@ const props = defineProps({ const { candidates, search } = useProjects(props.pub) defineEmits(['open']) - - \ No newline at end of file diff --git a/src/project/useProject.ts b/src/project/useProject.ts index 259408ac3..9044b8eec 100644 --- a/src/project/useProject.ts +++ b/src/project/useProject.ts @@ -27,23 +27,22 @@ export function useNewProject(title?: string) { author: computed(() => user.pub), }) - async function addProject() { + async function addProject(cb?: Function) { const gun = useGun() - const { user } = useUser() - const id = genUUID(6) - newProject.author = user.pub - - const link = gun.user().get('projects').get(id).put(newProject, () => { + const link = gun.user().get('projects').get(newProject.id).put(newProject, () => { if (!newProject.public) return gun .user(currentRoom.pub) .get('projects') - .get(id + '@' + user.pub) + .get(newProject.id + '@' + user.pub) .put( link, - undefined, + () => { + console.log('added project') + if (cb) { cb?.() } + }, { opt: { cert: currentRoom.features?.projects } diff --git a/src/room/useRoom.ts b/src/room/useRoom.ts index 7b6da52f8..35d3d64be 100644 --- a/src/room/useRoom.ts +++ b/src/room/useRoom.ts @@ -16,11 +16,10 @@ import config from "../../gun.config.json"; import { reactive, computed, ref, watchEffect } from "vue"; import { ISEAPair } from "gun"; import { useStorage } from '@vueuse/core' +import { CurrentRoom } from "./useRoom.d"; const rootRoom = config.room -import { CurrentRoom } from "./useRoom.d"; - export const currentRoom: CurrentRoom = reactive({ pub: useStorage('current-room', rootRoom.pub), isRoot: computed(() => currentRoom.pub == rootRoom.pub),