unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
1 lines • 2.19 kB
JavaScript
import{n as e,s as t,t as n}from"./jsx-runtime-ButemYzH.js";import{Ac as r,Al as i,Cs as a,Ls as o,Ml as s,Ol as c,Ri as l,Ts as u,Xd as d,kc as f,xd as p}from"./index-B0RbDPtk.js";var m=n(),h=p(d)(({theme:e})=>({textDecoration:`none`,color:e.palette.primary.main,fontWeight:e.fontWeight.bold})),g=({isOpen:e,onClose:t,features:n,project:r})=>(0,m.jsxs)(u,{title:`You can't archive a feature that other features depend on`,open:e,primaryButtonText:`OK`,onClick:t,children:[(0,m.jsx)(`p`,{children:`The following features depend on your feature:`}),(0,m.jsx)(`ul`,{children:n.map(e=>(0,m.jsx)(`li`,{children:(0,m.jsx)(h,{to:`/projects/${r}/features/${e}`,target:`_blank`,rel:`noopener noreferrer`,children:e})},e))})]}),_=t(e()),v=c(`api/admin/client-metrics/features`),y=(e,t)=>{let n=c(`api/admin/client-metrics/features/${e}/raw?hoursBack=${t}`),{data:r,error:a}=i(n,()=>b(n)),o=(0,_.useCallback)(()=>{s(v).catch(console.warn)},[]);return{featureMetrics:r?.data,loading:!a&&!r,refetchFeatureMetrics:o,error:a}},b=e=>fetch(e).then(r(`Features`)).then(e=>e.json()).then(),x=({hoursBack:e,setHoursBack:t,label:n=`Period`})=>{let{trackEvent:r}=o(),i=e=>{t(Number.parseInt(e,10)),r(`feature-metrics`,{props:{eventType:`change-period`,hoursBack:e}})},{isEnterprise:s}=f(),c=l(`extendedUsageMetrics`),u=s()&&c?[...S,...C]:S,d=u.map(e=>Number(e.key)).includes(e)?e:48;return(0,_.useEffect)(()=>{e!==d&&t(d)},[e]),(0,m.jsx)(`div`,{children:(0,m.jsx)(a,{name:`feature-metrics-period`,label:n,id:`feature-metrics-period`,options:u,value:String(d),onChange:i,fullWidth:!0})})},S=[{key:`1`,label:`Last hour`},{key:`24`,label:`Last 24 hours`},{key:`48`,label:`Last 48 hours`}],C=[{key:`168`,label:`Last 7 days`},{key:`720`,label:`Last 30 days`},{key:`2160`,label:`Last 90 days`}],w=e=>{let t=new Map;return e.forEach(e=>{let n=t.get(e.timestamp);if(n||(n={...e,yes:0,no:0,variants:{}},t.set(e.timestamp,n)),n.yes+=e.yes,n.no+=e.no,e.variants){n.variants=n.variants||{};for(let[t,r]of Object.entries(e.variants))n.variants[t]=(n.variants[t]||0)+r}}),Array.from(t.values()).map(e=>({...e,variants:e.variants&&Object.keys(e.variants).length===0?void 0:e.variants}))};export{g as i,x as n,y as r,w as t};