|
|
@@ -4,68 +4,76 @@
|
|
|
import { get as getToken, IUser, signIn } from "./reducers/current-user";
|
|
|
//import { DURATION } from "./reducers/current-user";
|
|
|
import { ISite, refresh as refreshLayout } from "./reducers/layout";
|
|
|
+import { ISettingItem, refresh as refreshSetting } from "./reducers/setting";
|
|
|
import { get, IErrorResponse } from "./request";
|
|
|
//import { GRPC_HOST, grpc_metadata } from "./request";
|
|
|
import store from "./store";
|
|
|
|
|
|
interface IUserResponse {
|
|
|
- ok: boolean;
|
|
|
- message: string;
|
|
|
- data: IUser;
|
|
|
+ ok: boolean;
|
|
|
+ message: string;
|
|
|
+ data: IUser;
|
|
|
}
|
|
|
|
|
|
export interface ISiteInfoResponse {
|
|
|
- title: string;
|
|
|
+ title: string;
|
|
|
}
|
|
|
interface IUserData {
|
|
|
- nickName: string;
|
|
|
- realName: string;
|
|
|
- avatar: string;
|
|
|
- roles: string[];
|
|
|
- token: string;
|
|
|
+ nickName: string;
|
|
|
+ realName: string;
|
|
|
+ avatar: string;
|
|
|
+ roles: string[];
|
|
|
+ token: string;
|
|
|
}
|
|
|
export interface ITokenRefreshResponse {
|
|
|
- ok: boolean;
|
|
|
- message: string;
|
|
|
- data: IUserData;
|
|
|
+ ok: boolean;
|
|
|
+ message: string;
|
|
|
+ data: IUserData;
|
|
|
}
|
|
|
|
|
|
const init = () => {
|
|
|
- get<ISiteInfoResponse | IErrorResponse>("/v2/siteinfo/en").then(
|
|
|
- (response) => {
|
|
|
- if ("title" in response) {
|
|
|
- const it: ISite = {
|
|
|
- title: response.title,
|
|
|
- subhead: "",
|
|
|
- keywords: [],
|
|
|
- description: "",
|
|
|
- copyright: "",
|
|
|
- logo: "",
|
|
|
- author: { name: "", email: "" },
|
|
|
- };
|
|
|
- store.dispatch(refreshLayout(it));
|
|
|
- }
|
|
|
- }
|
|
|
- );
|
|
|
- const token = getToken();
|
|
|
- if (token) {
|
|
|
- get<ITokenRefreshResponse | IErrorResponse>("/v2/auth/current").then(
|
|
|
- (response) => {
|
|
|
- console.log(response);
|
|
|
- if ("data" in response) {
|
|
|
- const it: IUser = {
|
|
|
- nickName: response.data.nickName,
|
|
|
- realName: response.data.realName,
|
|
|
- avatar: response.data.avatar,
|
|
|
- roles: response.data.roles,
|
|
|
- };
|
|
|
- store.dispatch(signIn([it, response.data.token]));
|
|
|
- }
|
|
|
- }
|
|
|
- );
|
|
|
- } else {
|
|
|
- console.log("no token");
|
|
|
- }
|
|
|
+ get<ISiteInfoResponse | IErrorResponse>("/v2/siteinfo/en").then(
|
|
|
+ (response) => {
|
|
|
+ if ("title" in response) {
|
|
|
+ const it: ISite = {
|
|
|
+ title: response.title,
|
|
|
+ subhead: "",
|
|
|
+ keywords: [],
|
|
|
+ description: "",
|
|
|
+ copyright: "",
|
|
|
+ logo: "",
|
|
|
+ author: { name: "", email: "" },
|
|
|
+ };
|
|
|
+ store.dispatch(refreshLayout(it));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ const token = getToken();
|
|
|
+ if (token) {
|
|
|
+ get<ITokenRefreshResponse | IErrorResponse>("/v2/auth/current").then(
|
|
|
+ (response) => {
|
|
|
+ console.log(response);
|
|
|
+ if ("data" in response) {
|
|
|
+ const it: IUser = {
|
|
|
+ nickName: response.data.nickName,
|
|
|
+ realName: response.data.realName,
|
|
|
+ avatar: response.data.avatar,
|
|
|
+ roles: response.data.roles,
|
|
|
+ };
|
|
|
+ store.dispatch(signIn([it, response.data.token]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ console.log("no token");
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取用户设置
|
|
|
+ const setting = localStorage.getItem("user-settings");
|
|
|
+ if (setting !== null) {
|
|
|
+ const json = JSON.parse(setting);
|
|
|
+ store.dispatch(refreshSetting(json as ISettingItem[]));
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
export default init;
|