1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-27 21:05:53 +00:00
FrankerFaceZ/src/modules/main_menu/components/setting-check-box.vue
SirStendec 880e80388a 4.45.0
* Added: Emote cards are now at parity with vanilla Twitch emote cards when it comes to displaying Twitch emotes, including the ability to follow/subscribe to the source channel, view their other emotes, and report emotes.
* Added: Emote cards for FFZ emotes now allow you to add an emote to any collection you can manage.
* Added: Emote cards for other emotes now have an action to open the emote on the source service's webpage.
* Fixed: Effect emotes not appearing when used incorrectly in chat.
* Fixed: Rebuild the tab-completion emote array in a way more likely to cause Twitch's native input element to update when we change our emotes.
* Changed: Use a higher contrast "New" pill when displaying new items in the FFZ Control Center. (Closes #1348)
* Changed: Push the modular chat line rendering experiment to 100% roll-out.
2023-03-30 14:54:33 -04:00

104 lines
No EOL
2.3 KiB
Vue

<template lang="html">
<div
:class="{inherits: isInherited, default: isDefault}"
class="ffz--widget ffz--checkbox"
>
<div class="tw-flex tw-align-items-center ffz-checkbox">
<input
:id="item.full_key"
ref="control"
:checked="value"
:disabled="isReadOnly"
type="checkbox"
class="ffz-checkbox__input"
@change="onChange"
>
<label :for="item.full_key" class="ffz-checkbox__label">
<span class="tw-mg-l-1">
{{ item.i18n_key ? t(item.i18n_key, item.title) : item.title }}
<span v-if="unseen" class="ffz-pill ffz-pill--success">{{ t('setting.new', 'New') }}</span>
</span>
</label>
<component
:is="item.buttons"
v-if="item.buttons"
:context="context"
:item="item"
:value="value"
/>
<button
v-if="source && source !== profile"
class="tw-mg-l-05 tw-button tw-button--text"
@click="context.currentProfile = source"
>
<span class="tw-button__text ffz-i-right-dir">
{{ sourceDisplay }}
</span>
</button>
<div class="ffz--reset-button">
<button
v-if="has_value"
:disabled="isReadOnly"
class="tw-mg-l-05 tw-button tw-button--text ffz-il-tooltip__container"
:class="{'tw-button--disabled': isReadOnly}"
@click="clear"
>
<span class="tw-button__text ffz-i-cancel" />
<div class="ffz-il-tooltip ffz-il-tooltip--down ffz-il-tooltip--align-right">
{{ t('setting.reset', 'Reset to Default') }}
</div>
</button>
</div>
</div>
<section
v-if="item.description"
class="tw-c-text-alt-2"
style="padding-left:2.5rem"
>
<markdown :source="t(item.desc_i18n_key || `${item.i18n_key}.description`, item.description)" />
</section>
<section
v-if="item.extra"
style="padding-left:2.5rem"
>
<component
:is="item.extra.component"
:context="context"
:item="item"
/>
</section>
</div>
</template>
<script>
import SettingMixin from '../setting-mixin';
export default {
mixins: [SettingMixin],
props: ['item', 'context'],
watch: {
value() {
if ( this.$refs.control )
this.$refs.control.indeterminate = this.value == null;
}
},
mounted() {
if ( this.$refs.control )
this.$refs.control.indeterminate = this.value == null;
},
methods: {
onChange() {
this.set(this.$refs.control.checked);
}
}
}
</script>