feat: added mutation and function to platform for updating user profile name (#3929)
Co-authored-by: amk-dev <akash.k.mohan98@gmail.com> Co-authored-by: jamesgeorge007 <jamesgeorge998001@gmail.com>
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<div class="p-4">
|
||||
<div class="p-4 truncate">
|
||||
<label
|
||||
class="font-semibold text-secondaryDark"
|
||||
:class="{ 'cursor-pointer': compact && team.myRole === 'OWNER' }"
|
||||
|
||||
@@ -210,6 +210,8 @@ import { toggleSetting } from "~/newstore/settings"
|
||||
import IconVerified from "~icons/lucide/verified"
|
||||
import IconSettings from "~icons/lucide/settings"
|
||||
|
||||
import * as E from "fp-ts/Either"
|
||||
|
||||
type ProfileTabs = "sync" | "teams"
|
||||
|
||||
const selectedProfileTab = ref<ProfileTabs>("sync")
|
||||
@@ -244,19 +246,28 @@ const displayName = ref(currentUser.value?.displayName || "")
|
||||
const updatingDisplayName = ref(false)
|
||||
watchEffect(() => (displayName.value = currentUser.value?.displayName || ""))
|
||||
|
||||
const updateDisplayName = () => {
|
||||
const updateDisplayName = async () => {
|
||||
if (!displayName.value) {
|
||||
toast.error(`${t("error.empty_profile_name")}`)
|
||||
return
|
||||
}
|
||||
|
||||
if (currentUser.value?.displayName === displayName.value) {
|
||||
toast.error(`${t("error.same_profile_name")}`)
|
||||
return
|
||||
}
|
||||
|
||||
updatingDisplayName.value = true
|
||||
platform.auth
|
||||
.setDisplayName(displayName.value as string)
|
||||
.then(() => {
|
||||
toast.success(`${t("profile.updated")}`)
|
||||
})
|
||||
.catch(() => {
|
||||
toast.error(`${t("error.something_went_wrong")}`)
|
||||
})
|
||||
.finally(() => {
|
||||
updatingDisplayName.value = false
|
||||
})
|
||||
|
||||
const res = await platform.auth.setDisplayName(displayName.value)
|
||||
|
||||
if (E.isLeft(res)) {
|
||||
toast.error(t("error.something_went_wrong"))
|
||||
} else if (E.isRight(res)) {
|
||||
toast.success(`${t("profile.updated")}`)
|
||||
}
|
||||
|
||||
updatingDisplayName.value = false
|
||||
}
|
||||
|
||||
const emailAddress = ref(currentUser.value?.email || "")
|
||||
|
||||
@@ -4,6 +4,7 @@ import { Component } from "vue"
|
||||
import { getI18n } from "~/modules/i18n"
|
||||
import * as E from "fp-ts/Either"
|
||||
import { AxiosRequestConfig } from "axios"
|
||||
import { GQLError } from "~/helpers/backend/GQLClient"
|
||||
|
||||
/**
|
||||
* A common (and required) set of fields that describe a user.
|
||||
@@ -229,9 +230,11 @@ export type AuthPlatformDef = {
|
||||
/**
|
||||
* Updates the display name of the user
|
||||
* @param name The new name to set this to.
|
||||
* @returns An empty promise that is resolved when the operation is complete
|
||||
* @returns A promise that resolves with the display name update status when the operation is complete
|
||||
*/
|
||||
setDisplayName: (name: string) => Promise<void>
|
||||
setDisplayName: (
|
||||
name: string
|
||||
) => Promise<E.Either<GQLError<string>, undefined>>
|
||||
|
||||
/**
|
||||
* Returns the list of allowed auth providers for the platform ( the currently supported ones are GOOGLE, GITHUB, EMAIL, MICROSOFT, SAML )
|
||||
|
||||
Reference in New Issue
Block a user