diff options
| author | HJ <30-hj@users.noreply.git.pleroma.social> | 2023-03-20 20:31:20 +0000 |
|---|---|---|
| committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2023-03-20 20:31:20 +0000 |
| commit | fa532b1f005220743d036b7d103c47a043be7ae4 (patch) | |
| tree | 09d5e4d409f7298a328e3feaac6a062e9082df4d /src/components/settings_modal/helpers/number_setting.js | |
| parent | 19618db1929f1aea6183de3102581844298d1d39 (diff) | |
| parent | 493120b5456282756d05d9afaf66b11a2f87d8fc (diff) | |
Merge branch 'pleroma-akkoma-emoji-port' into 'develop'
Custom emoji reaction support
See merge request pleroma/pleroma-fe!1792
Diffstat (limited to 'src/components/settings_modal/helpers/number_setting.js')
| -rw-r--r-- | src/components/settings_modal/helpers/number_setting.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/components/settings_modal/helpers/number_setting.js b/src/components/settings_modal/helpers/number_setting.js new file mode 100644 index 00000000..73c39948 --- /dev/null +++ b/src/components/settings_modal/helpers/number_setting.js @@ -0,0 +1,56 @@ +import { get, set } from 'lodash' +import ModifiedIndicator from './modified_indicator.vue' +export default { + components: { + ModifiedIndicator + }, + props: { + path: String, + disabled: Boolean, + min: Number, + step: Number, + truncate: Number, + expert: [Number, String] + }, + computed: { + pathDefault () { + const [firstSegment, ...rest] = this.path.split('.') + return [firstSegment + 'DefaultValue', ...rest].join('.') + }, + parent () { + return this.$parent.$parent + }, + state () { + const value = get(this.parent, this.path) + if (value === undefined) { + return this.defaultState + } else { + return value + } + }, + defaultState () { + return get(this.parent, this.pathDefault) + }, + isChanged () { + return this.state !== this.defaultState + }, + matchesExpertLevel () { + return (this.expert || 0) <= this.parent.expertLevel + } + }, + methods: { + truncateValue (value) { + if (!this.truncate) { + return value + } + + return Math.trunc(value / this.truncate) * this.truncate + }, + update (e) { + set(this.parent, this.path, this.truncateValue(parseFloat(e.target.value))) + }, + reset () { + set(this.parent, this.path, this.defaultState) + } + } +} |
