Files
hoppscotch/packages/hoppscotch-app/components/smart/FontSizePicker.vue
2021-12-04 18:59:26 +05:30

59 lines
1.4 KiB
Vue

<template>
<span class="inline-flex">
<tippy ref="fontSize" interactive trigger="click" theme="popover" arrow>
<template #trigger>
<span class="select-wrapper">
<ButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('settings.change_font_size')"
class="pr-8"
svg="type"
outline
:label="`${getFontSizeName(
fontSizes.find((size) => size === active)
)}`"
/>
</span>
</template>
<SmartItem
v-for="(size, index) in fontSizes"
:key="`size-${index}`"
:label="`${getFontSizeName(size)}`"
:icon="
size === active ? 'radio_button_checked' : 'radio_button_unchecked'
"
@click.native="
() => {
setActiveFont(size)
$refs.fontSize.tippy().hide()
}
"
/>
</tippy>
</span>
</template>
<script setup lang="ts">
import {
HoppFontSizes,
HoppFontSize,
applySetting,
useSetting,
} from "~/newstore/settings"
import { useI18n } from "~/helpers/utils/composables"
const t = useI18n()
const fontSizes = HoppFontSizes
const active = useSetting("FONT_SIZE")
const getFontSizeName = (size: HoppFontSize) => {
return t(`settings.font_size_${size}`)
}
const setActiveFont = (size: HoppFontSize) => {
document.documentElement.setAttribute("data-font-size", size)
applySetting("FONT_SIZE", size)
}
</script>