From d8d0ca799b8c965cf49f68d769bc5f78835eb8d1 Mon Sep 17 00:00:00 2001 From: clonbg Date: Thu, 13 Feb 2025 14:27:18 +0100 Subject: [PATCH] new Item --- src/layouts/MainLayout.vue | 55 ++++++++++++++++++++++++++++++++++++++ src/pages/ItemsPage.vue | 55 +++++++++++++++++++++++++------------- 2 files changed, 91 insertions(+), 19 deletions(-) diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 5f0f0e1..0455553 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -19,6 +19,10 @@ v-if="router.currentRoute.value.path == '/'"> Nueva Lista + + Nuevo Item + Logout @@ -108,4 +112,55 @@ const newLista = async () => { const openDialogNewList = () => { dialogNewList.value = true } + +const newItem = () => { + const lista = router.currentRoute.value.params.id + $q.dialog({ + title: 'Escriba', + message: 'Nuevo item', + html: true, + prompt: { + model: '', + isValid: val => val.length > 4, // << here is the magic + type: 'text' + }, + ok: { + push: true, + label: 'Crear', + color: 'positive' // << here is the magic + }, + cancel: { + push: true, + color: 'negative' + }, + persistent: true + }).onOk(async (item) => { + if (store.items.find(i => i.nombre === item)) { + $q.notify({ + type: 'negative', + message: 'Item duplicado' + }) + return + } + try { + console.log(item, lista) + const { data, error } = await supabase + .from('items') + .insert([ + { nombre: item, lista_id: lista } + ]) + .select() + console.log(data) + if (error) throw error + store.items.push(data[0]) + } catch (error) { + if (error instanceof Error) { + $q.notify({ + type: 'negative', + message: error.message + }) + } + } + }) +} diff --git a/src/pages/ItemsPage.vue b/src/pages/ItemsPage.vue index dbf6444..7d8ddf9 100644 --- a/src/pages/ItemsPage.vue +++ b/src/pages/ItemsPage.vue @@ -1,23 +1,33 @@ @@ -30,6 +40,13 @@ import useSupabase from '../boot/supabase' const { supabase } = useSupabase() const store = supabaseStore() const route = useRoute() + +const onLoad = (index, done) => { + setTimeout(() => { + store.listas.push() + done() + }, 1000) +} const getItems = async () => { console.log('getItems', route.params.id) let { data: items, error } = await supabase