PageSourceSearch

https://mercilessnature.lovable.app/assets/NicheSection-C1dRlOYT.js

js mercilessnature.lovable.app collected 2026-10-03 03:34:15 UTC 4,109 bytes, 1 lines download raw bytes

1import{r as s,j as e,s as F}from"./index-CSKXdzuk.js";import{a7 as h,bc as m,bM as N,bd as I,be as E,a8 as k,bl as r,ap as g,aq as S,ar as b,as as C,at as u,f as _,I as H,B as O,c9 as V}from"./App-CFiHilCu.js";import{u as D,a as M}from"./NicheBadges-BJt_rVqP.js";const T=[{value:"pred",label:"🔴 Predator"},{value:"prey",label:"🔵 Prey"},{value:"switch",label:"🟣 Switch"},{value:"observer",label:"👁️ Observer"}],U=[{value:"macro",label:"📏 Macro"},{value:"micro",label:"🔬 Micro"},{value:"either",label:"↕️ Either Size"}],A=["Wolf","Fox","Cat","Lion","Dragon","Shark","Rabbit","Bear","Deer","Bird","Tiger","Hyena","Otter","Raccoon","Bat","Snake","Lizard","Horse","Dog","Other"],G=[{value:"vore",label:"Vore Community"},{value:"furry",label:"Furry Community"},{value:"giantess",label:"Giantess/Size Community"},{value:"general",label:"General Art"}],Y=({userId:i})=>{const{nicheIdentity:t,fursonaName:n,primaryNiche:o,updateNicheIdentity:L,isUpdating:x,isLoading:w}=D(i),[l,j]=s.useState({}),[p,v]=s.useState(""),[y,f]=s.useState(null),[P,c]=s.useState(!1);s.useEffect(()=>{t&&j(t),n&&v(n),o&&f(o)},[t,n,o]);const d=(a,z)=>{j(B=>({...B,[a]:z})),c(!0)},R=()=>{L({niche_identity:l,fursona_name:p||null,primary_niche:y}),c(!1)};return w?e.jsx(h,{children:e.jsx(m,{className:"flex items-center justify-center py-8",children:e.jsx(N,{className:"h-6 w-6 animate-spin text-muted-foreground"})})}):e.jsxs(h,{children:[e.jsxs(I,{children:[e.jsxs(E,{className:"flex items-center gap-2",children:[e.jsx(k,{className:"h-5 w-5 text-primary"}),"Niche Identity"]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Customize your community identity and badges"})]}),e.jsxs(m,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:"Primary Community"}),e.jsxs(g,{value:y||"",onValueChange:a=>{f(a),c(!0)},children:[e.jsx(S,{children:e.jsx(b,{placeholder:"Select your primary community"})}),e.jsx(C,{children:G.map(a=>e.jsx(u,{value:a.value,children:a.label},a.value))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:"Vore Role"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:T.map(a=>e.jsx(_,{variant:l.vore_role===a.value?"default":"outline",className:"cursor-pointer transition-all hover:scale-105",onClick:()=>d("vore_role",l.vore_role===a.value?void 0:a.value),children:a.label},a.value))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:"Size Preference"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:U.map(a=>e.jsx(_,{variant:l.size_role===a.value?"default":"outline",className:"cursor-pointer transition-all hover:scale-105",onClick:()=>d("size_role",l.size_role===a.value?void 0:a.value),children:a.label},a.value))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:"Furry Species"}),e.jsxs(g,{value:l.furry_species||"",onValueChange:a=>d("furry_species",a==="__none__"?void 0:a),children:[e.jsx(S,{children:e.jsx(b,{placeholder:"Select a species"})}),e.jsxs(C,{children:[e.jsx(u,{value:"__none__",children:"None"}),A.map(a=>e.jsx(u,{value:a,children:a},a))]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"fursona_name",children:"Fursona Name"}),e.jsx(H,{id:"fursona_name",value:p,onChange:a=>{v(a.target.value),c(!0)},placeholder:"Your fursona's name (optional)",maxLength:50})]}),e.jsxs("div",{className:"space-y-3 pt-4 border-t",children:[e.jsx(r,{children:"Profile Badge Display"}),e.jsx(M,{userId:i})]}),P&&e.jsx(O,{onClick:R,disabled:x,className:"w-full","aria-label":"Loading",children:x?e.jsxs(e.Fragment,{children:[e.jsx(N,{className:"h-4 w-4 mr-2 animate-spin"}),"Saving..."]}):"Save Niche Identity"})]})]})};function J(){const[i,t]=s.useState(null);return s.useEffect(()=>{F.auth.getUser().then(({data:n})=>t(n.user?.id??null))},[]),e.jsxs(h,{children:[e.jsxs(I,{children:[e.jsx(E,{children:"Niche identity"}),e.jsx(V,{children:"Help us match you with the right community."})]}),e.jsx(m,{children:i?e.jsx(Y,{userId:i}):e.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading…"})})]})}export{J 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.