UNPKG

react-experiment-hoc

Version:

Simple hoc to provide a/b-test features.

18 lines (14 loc) 590 B
import weighted from './weighted'; export const getVariant = (variants, experiment, fallback, persistent, setCookie, getCookie) => { const key = `experiment_${experiment}${persistent}`; const cookieIndex = getCookie(key); let index = cookieIndex; if (!index || !variants[index] || persistent < 0) index = weighted(variants.map(v => v.weight)); if (!cookieIndex && !fallback && persistent >= 0) setCookie(key, index, { path: '/', expires: !persistent ? null : new Date(Date.now()+(60 * 60 * 24 * 365 * 10 * 1000)), }); return variants[index].name; }