UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

2 lines (1 loc) 2.14 kB
import{s as f,L as m,j as n,aY as g,b9 as d,cm as y,r as p,bd as v,bb as b,as as x,bc as k,cJ as E,aT as F}from"./index-BAMIkcom.js";const M=f(m)(({theme:a})=>({textDecoration:"none",color:a.palette.primary.main,fontWeight:a.fontWeight.bold})),j=({isOpen:a,onClose:s,features:e,project:t})=>n.jsxs(g,{title:"You can't archive a feature that other features depend on",open:a,primaryButtonText:"OK",onClick:s,children:[n.jsx("p",{children:"The following features depend on your feature:"}),n.jsx("ul",{children:e.map(r=>n.jsx("li",{children:n.jsx(M,{to:`/projects/${t}/features/${r}`,target:"_blank",rel:"noopener noreferrer",children:r})},r))})]}),L=d("api/admin/client-metrics/features"),U=(a,s)=>{const e=d(`api/admin/client-metrics/features/${a}/raw?hoursBack=${s}`),{data:t,error:r}=y(e,()=>R(e)),i=p.useCallback(()=>{v(L).catch(console.warn)},[]);return{featureMetrics:t==null?void 0:t.data,loading:!r&&!t,refetchFeatureMetrics:i,error:r}},R=a=>fetch(a).then(b("Features")).then(s=>s.json()).then(),T=48,$=({hoursBack:a,setHoursBack:s,label:e="Period"})=>{const{trackEvent:t}=x(),r=o=>{s(Number.parseInt(o,10)),t("feature-metrics",{props:{eventType:"change-period",hoursBack:o}})},{isEnterprise:i}=k(),h=E("extendedUsageMetrics"),l=i()&&h?[...u,...w]:u,c=l.map(o=>Number(o.key)).includes(a)?a:T;return p.useEffect(()=>{a!==c&&s(c)},[a]),n.jsx("div",{children:n.jsx(F,{name:"feature-metrics-period",label:e,id:"feature-metrics-period",options:l,value:String(c),onChange:r,fullWidth:!0})})},u=[{key:"1",label:"Last hour"},{key:"24",label:"Last 24 hours"},{key:"48",label:"Last 48 hours"}],w=[{key:`${7*24}`,label:"Last 7 days"},{key:`${30*24}`,label:"Last 30 days"},{key:`${90*24}`,label:"Last 90 days"}],C=a=>{const s=new Map;return a.forEach(e=>{let t=s.get(e.timestamp);if(t||(t={...e,yes:0,no:0,variants:{}},s.set(e.timestamp,t)),t.yes+=e.yes,t.no+=e.no,e.variants){t.variants=t.variants||{};for(const[r,i]of Object.entries(e.variants))t.variants[r]=(t.variants[r]||0)+i}}),Array.from(s.values()).map(e=>({...e,variants:e.variants&&Object.keys(e.variants).length===0?void 0:e.variants}))};export{j as F,T as a,C as b,$ as c,U as u};