1
0
mirror of synced 2025-12-21 19:06:49 -05:00

Add os preference tracking (#20740)

* Set cookie on os switch

* Set os based on cookie value

* Add os preference schema details

* Send os preference on page request

* Send os preference on os switch
This commit is contained in:
Robert Sese
2021-08-09 17:07:27 -05:00
committed by GitHub
parent 3904ab7935
commit 6f6cf56c20
3 changed files with 38 additions and 6 deletions

View File

@@ -1,4 +1,7 @@
import Cookies from 'js-cookie'
import parseUserAgent from './user-agent'
import { sendEvent, EventType } from './events'
const supportedPlatforms = ['mac', 'windows', 'linux']
const detectedPlatforms = new Set()
@@ -35,6 +38,18 @@ export default function displayPlatformSpecificContent() {
const target = event.target as HTMLElement
setActiveSwitcherLinks(target.dataset.platform || '')
showPlatformSpecificContent(target.dataset.platform || '')
Cookies.set('osPreferred', target.dataset.platform || '', {
sameSite: 'strict',
secure: true,
})
// Send event data
sendEvent({
type: EventType.preference,
preference_name: 'os',
preference_value: target.dataset.platform,
})
})
})
}
@@ -108,6 +123,8 @@ function detectPlatforms(el: HTMLElement) {
}
function getDefaultPlatform() {
if (Cookies.get('osPreferred')) return Cookies.get('osPreferred')
const el = document.querySelector('[data-default-platform]') as HTMLElement
if (el) return el.dataset.defaultPlatform
}