|
|
@@ -5,7 +5,7 @@ import { Nullable } from '~/interfaces/common';
|
|
|
import { IExternalAccount } from '~/interfaces/external-account';
|
|
|
import { IUser } from '~/interfaces/user';
|
|
|
|
|
|
-import { apiv3Get } from '../client/util/apiv3-client';
|
|
|
+import { apiv3Get, apiv3Put } from '../client/util/apiv3-client';
|
|
|
|
|
|
import { useStaticSWR } from './use-static-swr';
|
|
|
|
|
|
@@ -19,7 +19,8 @@ const useSWRxPersonalSettingsInfo = (): SWRResponse<IUser, Error> => {
|
|
|
|
|
|
export type IPersonalSettingsInfoOption = {
|
|
|
personalSettingsDataFromDB: Nullable<IUser>,
|
|
|
- sync: () => void;
|
|
|
+ sync: () => void,
|
|
|
+ update: () => void,
|
|
|
}
|
|
|
|
|
|
export const usePersonalSettingsInfo = (): SWRResponse<IUser, Error> & IPersonalSettingsInfoOption => {
|
|
|
@@ -34,6 +35,26 @@ export const usePersonalSettingsInfo = (): SWRResponse<IUser, Error> & IPersonal
|
|
|
const { mutate } = swrResult;
|
|
|
mutate(personalSettingsDataFromDB);
|
|
|
},
|
|
|
+ update: () => {
|
|
|
+ const { data, mutate } = swrResult;
|
|
|
+
|
|
|
+ if (data == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ mutate({ ...data }, false);
|
|
|
+
|
|
|
+ const updateData = {
|
|
|
+ name: data.name,
|
|
|
+ email: data.email,
|
|
|
+ isEmailPublished: data.isEmailPublished,
|
|
|
+ lang: data.lang,
|
|
|
+ slackMemberId: data.slackMemberId,
|
|
|
+ };
|
|
|
+
|
|
|
+ // invoke API
|
|
|
+ apiv3Put('/personal-setting/', updateData);
|
|
|
+ },
|
|
|
};
|
|
|
};
|
|
|
|