|
@@ -205,6 +205,23 @@
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <div class="text-grey-8 q-mb-sm font12 fontbold">
|
|
|
|
|
+ {{ $t("profile.notifications") }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="notification-card">
|
|
|
|
|
+ <span class="font14 text-text">
|
|
|
|
|
+ {{ $t("profile.push_notifications") }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+
|
|
|
|
|
+ <q-toggle
|
|
|
|
|
+ v-model="form.push_notifications_enabled"
|
|
|
|
|
+ color="primary"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<q-space />
|
|
<q-space />
|
|
@@ -249,7 +266,13 @@ const props = defineProps({
|
|
|
const { dialogRef, onDialogOK, onDialogCancel } = useDialogPluginComponent();
|
|
const { dialogRef, onDialogOK, onDialogCancel } = useDialogPluginComponent();
|
|
|
|
|
|
|
|
const { form, getUpdatedFields, hasUpdatedFields, setUpdateFormAsOriginal } =
|
|
const { form, getUpdatedFields, hasUpdatedFields, setUpdateFormAsOriginal } =
|
|
|
- useFormUpdateTracker({ name: "", email: "", phone: "", document: "" });
|
|
|
|
|
|
|
+ useFormUpdateTracker({
|
|
|
|
|
+ name: "",
|
|
|
|
|
+ email: "",
|
|
|
|
|
+ phone: "",
|
|
|
|
|
+ document: "",
|
|
|
|
|
+ push_notifications_enabled: false,
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
const {
|
|
const {
|
|
|
loading: submitting,
|
|
loading: submitting,
|
|
@@ -335,6 +358,7 @@ onMounted(async () => {
|
|
|
form.email = data.email || "";
|
|
form.email = data.email || "";
|
|
|
form.phone = data.phone || "";
|
|
form.phone = data.phone || "";
|
|
|
form.document = (data.client_document || "").replace(/\D/g, "");
|
|
form.document = (data.client_document || "").replace(/\D/g, "");
|
|
|
|
|
+ form.push_notifications_enabled = data.push_notifications_enabled ?? false;
|
|
|
|
|
|
|
|
avatarPreview.value = getProfileMediaUrl(data);
|
|
avatarPreview.value = getProfileMediaUrl(data);
|
|
|
|
|
|
|
@@ -358,4 +382,28 @@ onMounted(async () => {
|
|
|
.hidden {
|
|
.hidden {
|
|
|
display: none;
|
|
display: none;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+.notification-card {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+
|
|
|
|
|
+ min-height: 56px;
|
|
|
|
|
+ padding: 0 16px;
|
|
|
|
|
+
|
|
|
|
|
+ border: 1px solid #e0e0e0;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.notification-card :deep(.q-toggle__inner--falsy) {
|
|
|
|
|
+ color: rgba(0, 0, 0, 0.62);
|
|
|
|
|
+
|
|
|
|
|
+ .q-toggle__thumb:after {
|
|
|
|
|
+ box-shadow:
|
|
|
|
|
+ 0 0 0 1px #bdbdbd,
|
|
|
|
|
+ 0 2px 2px 0 rgba(0, 0, 0, 0.14);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|