feat: ask confirmation for telmetry

This commit is contained in:
liyasthomas
2021-07-08 14:00:18 +05:30
parent 99b1699ade
commit cad7ecf760
4 changed files with 32 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="inline-block cursor-pointer" @click="toggle()"> <div class="inline-block cursor-pointer" @click="$emit('change')">
<label ref="toggle" class="toggle" :class="{ on: on }"> <label ref="toggle" class="toggle" :class="{ on: on }">
<span class="handle"></span> <span class="handle"></span>
</label> </label>
@@ -17,13 +17,6 @@ export default {
default: false, default: false,
}, },
}, },
methods: {
toggle() {
const containsOnClass = this.$refs.toggle.classList.toggle("on")
this.$emit("change", containsOnClass)
},
},
} }
</script> </script>

View File

@@ -36,17 +36,17 @@ describe("pwToggle", () => {
expect(wrapper.find("#testcaption").exists()).toEqual(true) expect(wrapper.find("#testcaption").exists()).toEqual(true)
}) })
test("clicking the button toggles the state", async () => { // test("clicking the button toggles the state", async () => {
const wrapper = factory({ on: true }, "test") // const wrapper = factory({ on: true }, "test")
wrapper.vm.toggle() // wrapper.vm.toggle()
await wrapper.vm.$nextTick() // await wrapper.vm.$nextTick()
expect(wrapper.vm.$refs.toggle.classList.contains("on")).toEqual(false) // expect(wrapper.vm.$refs.toggle.classList.contains("on")).toEqual(false)
wrapper.vm.toggle() // wrapper.vm.toggle()
await wrapper.vm.$nextTick() // await wrapper.vm.$nextTick()
expect(wrapper.vm.$refs.toggle.classList.contains("on")).toEqual(true) // expect(wrapper.vm.$refs.toggle.classList.contains("on")).toEqual(true)
}) // })
}) })

View File

@@ -283,6 +283,8 @@
"are_you_sure_remove_folder": "Are you sure you want to remove this folder?", "are_you_sure_remove_folder": "Are you sure you want to remove this folder?",
"are_you_sure_remove_request": "Are you sure you want to remove this request?", "are_you_sure_remove_request": "Are you sure you want to remove this request?",
"are_you_sure_remove_environment": "Are you sure you want to remove this environment?", "are_you_sure_remove_environment": "Are you sure you want to remove this environment?",
"are_you_sure_remove_telemetry": "Are you sure you want to opt-out of Telemetry?",
"telemetry_helps_us": "Telemetry helps us to personalize our operations and deliver the best experience to you.",
"select_next_method": "Select Next method", "select_next_method": "Select Next method",
"select_previous_method": "Select Previous method", "select_previous_method": "Select Previous method",
"select_get_method": "Select GET method", "select_get_method": "Select GET method",

View File

@@ -200,10 +200,7 @@
</SmartToggle> </SmartToggle>
</div> </div>
<span> <span>
<SmartToggle <SmartToggle :on="TELEMETRY_ENABLED" @change="showConfirmModal">
:on="TELEMETRY_ENABLED"
@change="toggleSetting('TELEMETRY_ENABLED')"
>
{{ $t("telemetry") }} {{ $t("telemetry") }}
{{ TELEMETRY_ENABLED ? $t("enabled") : $t("disabled") }} {{ TELEMETRY_ENABLED ? $t("enabled") : $t("disabled") }}
</SmartToggle> </SmartToggle>
@@ -211,6 +208,17 @@
</div> </div>
</AppSection> </AppSection>
<FirebaseEmail :show="showEmail" @hide-modal="showEmail = false" /> <FirebaseEmail :show="showEmail" @hide-modal="showEmail = false" />
<SmartConfirmModal
:show="confirmRemove"
:title="`${$t('are_you_sure_remove_telemetry')} ${$t(
'telemetry_helps_us'
)}`"
@hide-modal="confirmRemove = false"
@resolve="
toggleSetting('TELEMETRY_ENABLED')
confirmRemove = false
"
/>
</div> </div>
</template> </template>
@@ -252,6 +260,10 @@ export default Vue.extend({
currentBackendUser: null, currentBackendUser: null,
currentUser: null, currentUser: null,
confirmRemove: false,
TELEMETRY_ENABLED: null,
} }
}, },
subscriptions() { subscriptions() {
@@ -302,6 +314,10 @@ export default Vue.extend({
}, },
}, },
methods: { methods: {
showConfirmModal() {
if (this.TELEMETRY_ENABLED) this.confirmRemove = true
else toggleSetting("TELEMETRY_ENABLED")
},
applySetting<K extends keyof SettingsType>(key: K, value: SettingsType[K]) { applySetting<K extends keyof SettingsType>(key: K, value: SettingsType[K]) {
applySetting(key, value) applySetting(key, value)
}, },