MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / LoadInitService

Function LoadInitService

web/packages/tca-layout/src/load-init-service.tsx:19–86  ·  view source on GitHub ↗
({ children }: any)

Source from the content-addressed store, hash-verified

17 * 初始化页面时的一些请求
18 */
19const LoadInitService: FC = ({ children }: any) => {
20 const [loading, setLoading] = useState<boolean>(true);
21 const dispatch = useDispatchStore<UserAction>();
22 const storeDispatch = useDispatch();
23
24 useNotification();
25 useVersionChangeRedirect();
26
27 useEffect(() => {
28 // 处理一些初始化时额外需要的请求
29 initRequest?.(dispatch, storeDispatch);
30 }, [dispatch, storeDispatch]);
31
32 useFetch(UserAPI.getUserInfo, [], {
33 onPreHandler: () => {
34 storeDispatch({
35 type: Constant.SET_LAYOUT_COMPLETED,
36 payload: false,
37 });
38 },
39 onSuccess: (data) => {
40 const { avatar, avatar_url: avatarUrl } = data;
41 const url = avatar || avatarUrl || getUserAvatarURL(data);
42 const userinfo = {
43 ...data,
44 avatar: url,
45 avatar_url: url,
46 };
47 dispatch({
48 type: SET_USERINFO,
49 payload: userinfo,
50 });
51 storeDispatch({
52 type: Constant.SET_USERINFO,
53 payload: userinfo,
54 });
55 setLoading(false);
56 // layout加载完毕
57 LogMgr.info('loading finished');
58 const timer = setTimeout(() => {
59 storeDispatch({
60 type: Constant.SET_LAYOUT_COMPLETED,
61 payload: true,
62 });
63 clearTimeout(timer);
64 }, 200);
65 reportUserInfo(userinfo);
66 },
67 });
68
69 useEffect(() => {
70 // 根据loading状态设置layout加载class,用于控制container显示/隐藏
71 const node = document.getElementById('main-container');
72 const layoutUnCompletedClass = 'layout-uncompleted';
73 if (node) {
74 if (loading && !node.classList.contains(layoutUnCompletedClass)) {
75 node.classList.add(layoutUnCompletedClass);
76 } else if (!loading && node.classList.contains(layoutUnCompletedClass)) {

Callers

nothing calls this directly

Calls 7

useDispatchStoreFunction · 0.90
useNotificationFunction · 0.90
useVersionChangeRedirectFunction · 0.90
useFetchFunction · 0.90
reportUserInfoFunction · 0.90
infoMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected