chenos c1b560e928
feat: rename resourceKey & associatedKey to resourceIndex & associatedIndex (#126)
* resourceIndex & associatedIndex

* resourceIndex & associatedIndex
2021-12-04 16:28:52 +08:00

52 lines
1.3 KiB
TypeScript

import React, { useContext, useEffect } from 'react';
import { Button, Dropdown, Menu, Spin } from 'antd';
import { useHistory } from 'react-router-dom';
import { useRequest } from 'ahooks';
import { createContext } from 'react';
import { useResourceRequest } from '../../constate';
export const SystemSettingsContext = createContext(null);
export function SystemSettingsProvider(props) {
const resource = useResourceRequest({
resourceName: 'system_settings',
resourceIndex: 1,
});
const service = useRequest(
() =>
resource.get({
resourceIndex: 1,
appends: ['logo'],
}),
{
formatResult: (data) => data?.data,
},
);
return (
<SystemSettingsContext.Provider value={{ service, resource }}>
{service.loading ? (
<Spin size={'large'} className={'nb-spin-center'} />
) : (
props.children
)}
</SystemSettingsContext.Provider>
);
}
export const useSystemSettings = () => {
const ctx = useContext(SystemSettingsContext);
return ctx?.service?.data || {};
};
export const SiteTitle = () => {
const { service = {} } = useContext(SystemSettingsContext);
const { loading, data } = service;
return (
<div className={'site-info'}>
{!loading && data?.logo?.url && (
<img className={'site-logo'} src={data?.logo?.url} />
)}
</div>
);
};