mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-06-27 21:05:53 +00:00
* 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.
104 lines
No EOL
2.3 KiB
Vue
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> |