mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-24 21:12:38 -04:00
b054342ddb
* [web] Update `bsVersion` to return its arguments types * [web] Remove `as string` after `bsVersion` calls GitOrigin-RevId: 604ce87aaccd709299124a986e98cf45874484bb
26 lines
920 B
TypeScript
26 lines
920 B
TypeScript
import getMeta from '@/utils/meta'
|
|
|
|
// The reason this is a function is to ensure that the meta tag is read before
|
|
// any isBootstrap5 check is performed
|
|
export const isBootstrap5 = () => getMeta('ol-bootstrapVersion') === 5
|
|
|
|
/* eslint-disable no-redeclare */
|
|
export function bsVersion<A>({ bs5 }: { bs5: A }): A | undefined
|
|
export function bsVersion<B>({ bs3 }: { bs3: B }): B | undefined
|
|
export function bsVersion<A, B>({ bs5, bs3 }: { bs5: A; bs3: B }): A | B
|
|
export function bsVersion({ bs5, bs3 }: { bs5?: unknown; bs3?: unknown }) {
|
|
return isBootstrap5() ? bs5 : bs3
|
|
}
|
|
|
|
// get all `aria-*` and `data-*` attributes
|
|
export const getAriaAndDataProps = (obj: Record<string, unknown>) => {
|
|
return Object.entries(obj).reduce(
|
|
(acc, [key, value]) => {
|
|
if (key.startsWith('aria-') || key.startsWith('data-')) {
|
|
acc[key] = value
|
|
}
|
|
return acc
|
|
},
|
|
{} as Record<string, unknown>
|
|
)
|
|
}
|