diff --git a/apps/frontend/src/composables/affiliates.ts b/apps/frontend/src/composables/affiliates.ts new file mode 100644 index 00000000..3e23c3b3 --- /dev/null +++ b/apps/frontend/src/composables/affiliates.ts @@ -0,0 +1,22 @@ +export const useAffiliates = () => { + const affiliateCookie = useCookie('mrs_afl', { + maxAge: 60 * 60 * 24 * 7, // 7 days + sameSite: 'lax', + secure: true, + httpOnly: false, + path: '/', + }) + + const setAffiliateCode = (code: string) => { + affiliateCookie.value = code + } + + const getAffiliateCode = (): string | undefined => { + return affiliateCookie.value || undefined + } + + return { + setAffiliateCode, + getAffiliateCode, + } +} diff --git a/apps/frontend/src/layouts/default.vue b/apps/frontend/src/layouts/default.vue index 3e75317b..abfefe74 100644 --- a/apps/frontend/src/layouts/default.vue +++ b/apps/frontend/src/layouts/default.vue @@ -455,6 +455,12 @@ link: '/admin/user_email', shown: isAdmin(auth.user), }, + { + id: 'affiliates', + color: 'primary', + link: '/admin/affiliates', + shown: isAdmin(auth.user), + }, { id: 'servers-notices', color: 'primary', @@ -478,7 +484,7 @@