Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
m1k1o
GitHub Repository: m1k1o/neko
Path: blob/master/client/src/utils/index.ts
1301 views
1
export function makeid(length: number) {
2
let result = ''
3
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
4
const charactersLength = characters.length
5
for (let i = 0; i < length; i++) {
6
result += characters.charAt(Math.floor(Math.random() * charactersLength))
7
}
8
return result
9
}
10
11
export function lockKeyboard() {
12
if (navigator && navigator.keyboard) {
13
navigator.keyboard.lock()
14
}
15
}
16
17
export function unlockKeyboard() {
18
if (navigator && navigator.keyboard) {
19
navigator.keyboard.unlock()
20
}
21
}
22
23
export function elementRequestFullscreen(el: HTMLElement) {
24
if (typeof el.requestFullscreen === 'function') {
25
el.requestFullscreen()
26
//@ts-ignore
27
} else if (typeof el.webkitRequestFullscreen === 'function') {
28
//@ts-ignore
29
el.webkitRequestFullscreen()
30
//@ts-ignore
31
} else if (typeof el.webkitEnterFullscreen === 'function') {
32
//@ts-ignore
33
el.webkitEnterFullscreen()
34
//@ts-ignore
35
} else if (typeof el.mozRequestFullScreen === 'function') {
36
//@ts-ignore
37
el.mozRequestFullScreen()
38
//@ts-ignore
39
} else if (typeof el.msRequestFullScreen === 'function') {
40
//@ts-ignore
41
el.msRequestFullScreen()
42
} else {
43
return false
44
}
45
return true
46
}
47
48
export function isFullscreen(): boolean {
49
return (
50
document.fullscreenElement ||
51
//@ts-ignore
52
document.msFullscreenElement ||
53
//@ts-ignore
54
document.mozFullScreenElement ||
55
//@ts-ignore
56
document.webkitFullscreenElement
57
)
58
}
59
60
export function onFullscreenChange(el: HTMLElement, fn: () => void) {
61
if (el.onfullscreenchange === null) {
62
el.onfullscreenchange = fn
63
//@ts-ignore
64
} else if (el.onmsfullscreenchange === null) {
65
//@ts-ignore
66
el.onmsfullscreenchange = fn
67
//@ts-ignore
68
} else if (el.onmozfullscreenchange === null) {
69
//@ts-ignore
70
el.onmozfullscreenchange = fn
71
//@ts-ignore
72
} else if (el.onwebkitfullscreenchange === null) {
73
//@ts-ignore
74
el.onwebkitfullscreenchange = fn
75
}
76
}
77
78