diff options
| author | HJ <30-hj@users.noreply.git.pleroma.social> | 2021-02-02 20:27:23 +0000 |
|---|---|---|
| committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2021-02-02 20:27:23 +0000 |
| commit | 7d4c7e3b3fce5d16849e677703e17ea67da927c8 (patch) | |
| tree | 44e745d1bfb3cd84f1ca7ca5105ac14b0b5d5a5a /src/components/settings_modal/helpers/boolean_setting.vue | |
| parent | de66267a07eb018cc0309ff6f9dd896d53ba3ff4 (diff) | |
| parent | 66f3e72b545a7f92d2569baa0fd52275a29d629a (diff) | |
Merge branch 'settings-changed' into 'develop'
Boolean settings improvements
See merge request pleroma/pleroma-fe!1257
Diffstat (limited to 'src/components/settings_modal/helpers/boolean_setting.vue')
| -rw-r--r-- | src/components/settings_modal/helpers/boolean_setting.vue | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/components/settings_modal/helpers/boolean_setting.vue b/src/components/settings_modal/helpers/boolean_setting.vue new file mode 100644 index 00000000..b600b63b --- /dev/null +++ b/src/components/settings_modal/helpers/boolean_setting.vue @@ -0,0 +1,57 @@ +<template> + <label + class="BooleanSetting" + > + <Checkbox + :checked="state" + @change="update" + :disabled="disabled" + > + <span + v-if="!!$slots.default" + class="label" + > + <slot /> + </span> + <ModifiedIndicator :changed="isChanged" /> + </Checkbox> + </label> +</template> + +<script> +import { get, set } from 'lodash' +import Checkbox from 'src/components/checkbox/checkbox.vue' +import ModifiedIndicator from './modified_indicator.vue' +export default { + props: [ + 'path', + 'disabled' + ], + components: { + Checkbox, + ModifiedIndicator + }, + computed: { + pathDefault () { + const [firstSegment, ...rest] = this.path.split('.') + return [firstSegment + 'DefaultValue', ...rest].join('.') + }, + state () { + return get(this.$parent, this.path) + }, + isChanged () { + return get(this.$parent, this.path) !== get(this.$parent, this.pathDefault) + } + }, + methods: { + update (e) { + set(this.$parent, this.path, e) + } + } +} +</script> + +<style lang="scss"> +.BooleanSetting { +} +</style> |
