2 lines
4.9 KiB
JavaScript
2 lines
4.9 KiB
JavaScript
import{d as I,k as z,n as T,c as s,f as _,a as o,l as d,t as x,g as f,h as l,e as w,v as k,A as F,F as h,m as B,b as H,x as K,r as c,j as L,o as r,B as V,q as R}from"./index-DRjWNyfe.js";import{u as q,H as E}from"./Header-Ct-kCCg3.js";import{B as y,_ as G}from"./Button-C94ALd0N.js";import{M as J}from"./Modal-4l4K46VH.js";const O={class:"layout"},P={class:"layout__body"},Q={class:"layout__content"},W={key:0,class:"loading"},X={key:1,class:"error"},Y={key:2,class:"doc-view"},Z={class:"doc-view__toolbar"},ee={key:0,class:"doc-view__saving"},te={key:1,class:"doc-view__saved"},oe={class:"doc-view__header"},ne={class:"doc-view__tags"},ae=["onClick"],se={class:"doc-view__editor"},re={class:"form__field"},le={class:"form__field"},ie={class:"color-picker"},ue=["onClick"],de=I({__name:"DocumentView",setup(ce){const D=K(),C=L(),t=q(),i=c(""),u=c(""),v=c(!1),m=c(""),p=c("#6366f1"),g=c(null);z(async()=>{const a=D.params.id;await t.fetchDocument(a),await t.fetchTags(),t.currentDocument&&(i.value=t.currentDocument.title,u.value=t.currentDocument.content)}),T(()=>D.params.id,async a=>{a&&(await t.fetchDocument(a),t.currentDocument&&(i.value=t.currentDocument.title,u.value=t.currentDocument.content))}),T(()=>t.currentDocument,a=>{a&&(i.value=a.title,u.value=a.content)});function S(){g.value&&clearTimeout(g.value),g.value=setTimeout(()=>{A()},1500)}async function A(){t.currentDocument&&await t.updateDocumentContent(t.currentDocument.id,u.value)}async function M(){!t.currentDocument||!i.value.trim()||await t.updateDocument(t.currentDocument.id,i.value.trim())}async function N(a){t.currentDocument&&await t.removeTag(t.currentDocument.id,a)}async function $(){if(!m.value.trim()||!t.currentDocument)return;const a=await t.createTag(m.value.trim(),p.value),e=t.currentDocument.tags.map(n=>n.id);await t.assignTags(t.currentDocument.id,[...e,a.id]),v.value=!1,m.value="",p.value="#6366f1"}async function b(){t.currentDocument?C.push(`/projects/${t.currentDocument.project_id}`):C.push("/dashboard")}const U=["#6366f1","#8b5cf6","#ec4899","#ef4444","#f97316","#eab308","#22c55e","#10b981","#14b8a6","#06b6d4"];return(a,e)=>(r(),s("div",O,[_(E),o("div",P,[o("main",Q,[d(t).loading?(r(),s("div",W,[...e[7]||(e[7]=[o("div",{class:"loading__spinner"},null,-1),o("p",null,"Loading document...",-1)])])):d(t).error?(r(),s("div",X,[o("p",null,x(d(t).error),1),_(y,{variant:"secondary",onClick:b},{default:f(()=>[...e[8]||(e[8]=[l("Go Back",-1)])]),_:1})])):d(t).currentDocument?(r(),s("div",Y,[o("div",Z,[o("button",{class:"doc-view__back",onClick:b},[...e[9]||(e[9]=[o("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[o("path",{d:"m15 18-6-6 6-6"})],-1),l(" Back ",-1)])]),d(t).saving?(r(),s("div",ee,[...e[10]||(e[10]=[o("div",{class:"doc-view__saving-dot"},null,-1),l(" Saving... ",-1)])])):(r(),s("div",te,[...e[11]||(e[11]=[o("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[o("polyline",{points:"20 6 9 17 4 12"})],-1),l(" Saved ",-1)])]))]),o("div",oe,[w(o("input",{"onUpdate:modelValue":e[0]||(e[0]=n=>i.value=n),type:"text",class:"doc-view__title",placeholder:"Untitled Document",onBlur:M,onKeyup:e[1]||(e[1]=F(n=>n.target.blur(),["enter"]))},null,544),[[k,i.value]])]),o("div",ne,[(r(!0),s(h,null,B(d(t).currentDocument.tags,n=>(r(),s("span",{key:n.id,class:"doc-view__tag",style:V({backgroundColor:n.color+"20",color:n.color,borderColor:n.color})},[l(x(n.name)+" ",1),o("button",{class:"doc-view__tag-remove",onClick:j=>N(n.id)},"×",8,ae)],4))),128)),o("button",{class:"doc-view__add-tag",onClick:e[2]||(e[2]=n=>v.value=!0)},[...e[12]||(e[12]=[o("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[o("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),o("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1),l(" Add Tag ",-1)])])]),o("div",se,[w(o("textarea",{"onUpdate:modelValue":e[3]||(e[3]=n=>u.value=n),class:"doc-view__textarea",placeholder:"Start writing in Markdown...",onInput:S},null,544),[[k,u.value]])])])):H("",!0)])]),_(J,{show:v.value,title:"Add Tag",onClose:e[6]||(e[6]=n=>v.value=!1)},{footer:f(()=>[_(y,{variant:"secondary",onClick:e[5]||(e[5]=n=>v.value=!1)},{default:f(()=>[...e[15]||(e[15]=[l("Cancel",-1)])]),_:1}),_(y,{variant:"primary",onClick:$},{default:f(()=>[...e[16]||(e[16]=[l("Add Tag",-1)])]),_:1})]),default:f(()=>[o("div",re,[e[13]||(e[13]=o("label",{for:"tag-name",class:"form__label"},"Tag Name",-1)),w(o("input",{id:"tag-name","onUpdate:modelValue":e[4]||(e[4]=n=>m.value=n),type:"text",class:"form__input",placeholder:"backend",autofocus:""},null,512),[[k,m.value]])]),o("div",le,[e[14]||(e[14]=o("label",{class:"form__label"},"Color",-1)),o("div",ie,[(r(),s(h,null,B(U,n=>o("button",{key:n,class:R(["color-picker__option",{"color-picker__option--selected":n===p.value}]),style:V({backgroundColor:n}),onClick:j=>p.value=n},null,14,ue)),64))])])]),_:1},8,["show"])]))}}),pe=G(de,[["__scopeId","data-v-e3416a05"]]);export{pe as default};
|