1import{r,j as e}from"./vendor-ui-Dew8CZxq.js";import{d as J,e as Q,b8 as ee,bd as se,b1 as h,be as m,bf as u,b2 as x,bc as ae,W as i,Y as p,a5 as re,Z as v,_ as f,$ as y,a0 as b,a1 as N,F as te,X as ie,B as ne,an as g,s as C}from"./index-BotW_F4D.js";import{S as le}from"./SidebarLayout-BtOnFKiL.js";import{a as ce}from"./vendor-router-DljXtjbj.js";import{U as oe}from"./upload-Dge0i-rx.js";import{A as de}from"./archive-DNeIDVSa.js";import{H as he}from"./heart-handshake-Dgc6V6aH.js";import{D as me}from"./database-XL2RhkP2.js";import{S as ue}from"./shield-check-B50mGkQI.js";import"./vendor-supabase-BOCL3uOH.js";import"./vendor-charts-Da-j9H4-.js";import"./vendor-editor-Ct-iNwJc.js";import"./vendor-query-Cjd1QUxP.js";const xe=["Abdzakh","Besleney","Bzhedug","Hatuqway","Kabardian","Mamkhegh","Natukhai","Shapsug","Temirgoy","Ubykh","Yegeruqway","Zhaney"],pe=["pre-1864","1864-1900","1900-1950","1950-present"],ge=["photo","document","letter","manuscript","audio","newspaper","map","other"],je=["Adyghe","Kabardian","Arabic","Turkish","Russian","English","Hebrew","Other"],ve=a=>a.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,60)||"item",_e=()=>{const{t:a,isRTL:H}=J(),{user:w}=Q(),I=ce(),[j,U]=r.useState(""),[T,q]=r.useState(""),[A,P]=r.useState("photo"),[k,V]=r.useState(""),[B,W]=r.useState(""),[E,Y]=r.useState(""),[L,M]=r.useState(""),[S,K]=r.useState(""),[_,O]=r.useState(""),[n,D]=r.useState([]),[F,R]=r.useState(!1);ee({title:"Contribute to the Community Archive",description:"Upload your Circassian family photos, documents, letters and manuscripts to a permanent searchable archive."});const Z=s=>{if(!s)return;const t=Array.from(s).slice(0,10),l=t.filter(c=>c.size<=20*1024*1024);l.length<t.length&&g.error("Some files exceeded 20MB and were skipped"),D(l)},G=async s=>{if(s.preventDefault(),!w)return g.error("Please sign in");if(!j.trim()||n.length===0)return g.error("Title and at least one file are required");R(!0);try{const t=`${ve(j)}-${Date.now().toString(36)}`,{data:l,error:c}=await C.from("archive_items").insert({uploader_id:w.id,title:j.trim(),slug:t,description:T.trim()||null,item_type:A,tribe:k||null,region:B.trim()||null,era:E||null,language:L||null,year_estimate:S?parseInt(S,10):null,source:_.trim()||null,status:"pending"}).select().single();if(c)throw c;for(let d=0;d<n.length;d++){const o=n[d],X=o.name.split(".").pop()||"bin",$=`${w.id}/${l.id}/${d}-${Date.now()}.${X}`,{error:z}=await C.storage.from("community-archive").upload($,o,{upsert:!1});if(z)throw z;await C.from("archive_files").insert({item_id:l.id,storage_path:$,file_type:o.type.startsWith("image/")?"image":o.type.startsWith("audio/")?"audio":"document",mime_type:o.type,size_bytes:o.size,position:d})}g.success(a("archive.submitted")||"Submitted for moderation. Thank you!"),I("/archive")}catch(t){console.error(t),g.error(t.message||"Upload failed")}finally{R(!1)}};return e.jsx(le,{children:e.jsx(se,{featureName:"Community Archive",children:e.jsxs("div",{className:"max-w-3xl mx-auto px-4 sm:px-8 py-8 space-y-8",dir:H?"rtl":"ltr",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx(oe,{className:"w-7 h-7 text-primary"}),e.jsx("h1",{className:"text-3xl font-serif font-bold",children:a("archive.uploadTitle")||"Contribute to the Community Archive"})]}),e.jsx("p",{className:"text-muted-foreground text-sm",children:a("archive.uploadIntro")||"Help us build a permanent home for our shared Circassian heritage. Every photo, letter, document or recording you share becomes part of a searchable, multi-generational archive open to our entire community."})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs(h,{children:[e.jsx(m,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(de,{className:"w-5 h-5 text-primary"}),e.jsx(u,{className:"text-base",children:a("archive.whatTitle")||"What is this archive?"})]})}),e.jsx(x,{className:"text-sm text-muted-foreground",children:a("archive.whatBody")||"A community-curated collection of family photos, documents, letters, manuscripts, audio recordings, newspapers and maps connected to Circassian history and heritage."})]}),e.jsxs(h,{children:[e.jsx(m,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(he,{className:"w-5 h-5 text-primary"}),e.jsx(u,{className:"text-base",children:a("archive.whyTitle")||"Why contribute?"})]})}),e.jsx(x,{className:"text-sm text-muted-foreground",children:a("archive.whyBody")||"Items kept in personal homes are easily lost. By sharing them here you protect them for future generations and help researchers, families and the wider community discover their roots."})]}),e.jsxs(h,{children:[e.jsx(m,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(me,{className:"w-5 h-5 text-primary"}),e.jsx(u,{className:"text-base",children:a("archive.whereTitle")||"Where are files stored?"})]})}),e.jsx(x,{className:"text-sm text-muted-foreground",children:a("archive.whereBody")||"Files are kept securely on our cloud servers and backed up regularly. The original qual
1ity is preserved so that future generations always have access to the source material."})]}),e.jsxs(h,{children:[e.jsx(m,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ae,{className:"w-5 h-5 text-primary"}),e.jsx(u,{className:"text-base",children:a("archive.searchTitle")||"How can people find it?"})]})}),e.jsx(x,{className:"text-sm text-muted-foreground",children:a("archive.searchBody")||"Approved items appear in the Archive and can be searched by title, family name, tribe, region, era and item type. Researchers can browse, filter and reference each entry directly."})]})]}),e.jsxs("div",{className:"rounded-md border border-border bg-muted/40 p-4 flex gap-3",children:[e.jsx(ue,{className:"w-5 h-5 text-primary shrink-0 mt-0.5"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a("archive.privacyBody")||"All submissions are reviewed by our moderators before being published. Please only upload material you have the right to share, and avoid private information about living people without their permission."})]}),e.jsxs(h,{children:[e.jsx(m,{children:e.jsx(u,{children:a("archive.itemDetails")||"Item details"})}),e.jsx(x,{children:e.jsxs("form",{onSubmit:G,className:"space-y-5",children:[e.jsxs("div",{children:[e.jsxs(i,{children:[a("archive.fTitle")||"Title"," *"]}),e.jsx(p,{value:j,onChange:s=>U(s.target.value),required:!0,maxLength:150})]}),e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fDescription")||"Description"}),e.jsx(re,{value:T,onChange:s=>q(s.target.value),rows:4,maxLength:2e3})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fType")||"Type"}),e.jsxs(v,{value:A,onValueChange:P,children:[e.jsx(f,{children:e.jsx(y,{})}),e.jsx(b,{children:ge.map(s=>e.jsx(N,{value:s,children:s},s))})]})]}),e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fTribe")||"Tribe"}),e.jsxs(v,{value:k,onValueChange:V,children:[e.jsx(f,{children:e.jsx(y,{placeholder:"â"})}),e.jsx(b,{children:xe.map(s=>e.jsx(N,{value:s,children:s},s))})]})]}),e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fEra")||"Era"}),e.jsxs(v,{value:E,onValueChange:Y,children:[e.jsx(f,{children:e.jsx(y,{placeholder:"â"})}),e.jsx(b,{children:pe.map(s=>e.jsx(N,{value:s,children:s},s))})]})]}),e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fLanguage")||"Original language"}),e.jsxs(v,{value:L,onValueChange:M,children:[e.jsx(f,{children:e.jsx(y,{placeholder:"â"})}),e.jsx(b,{children:je.map(s=>e.jsx(N,{value:s,children:s},s))})]})]}),e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fRegion")||"Region / city"}),e.jsx(p,{value:B,onChange:s=>W(s.target.value),maxLength:100})]}),e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fYear")||"Approximate year"}),e.jsx(p,{type:"number",value:S,onChange:s=>K(s.target.value),min:1500,max:2100})]})]}),e.jsxs("div",{children:[e.jsx(i,{children:a("archive.fSource")||"Source / provenance"}),e.jsx(p,{value:_,onChange:s=>O(s.target.value),placeholder:a("archive.fSourcePlaceholder")||"e.g. From my grandfather's collection",maxLength:300})]}),e.jsxs("div",{children:[e.jsxs(i,{children:[a("archive.fFiles")||"Files"," * ",e.jsx("span",{className:"text-xs text-muted-foreground",children:"(max 10, 20MB each)"})]}),e.jsx(p,{type:"file",multiple:!0,accept:"image/*,application/pdf,audio/*",onChange:s=>Z(s.target.files)}),n.length>0&&e.jsx("ul",{className:"mt-2 space-y-1",children:n.map((s,t)=>e.jsxs("li",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(te,{className:"w-4 h-4"}),s.name," ",e.jsxs("span",{className:"text-xs",children:["(",(s.size/1024/1024).toFixed(1),"MB)"]}),e.jsx("button",{type:"button",onClick:()=>D(n.filter((l,c)=>c!==t)),className:"ms-auto",children:e.jsx(ie,{className:"w-4 h-4"})})]},t))})]}),e.jsx(ne,{type:"submit",disabled:F,className:"w-full",children:F?a("archive.uploading")||"Uploading...":a("archive.submit")||"Submit for review"})]})})]})]})})})};export{_e as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.