You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailchat/client/web/src/plugin/common/index.ts

153 lines
3.5 KiB
TypeScript

/**
*
*
*/
import _pick from 'lodash/pick';
export * from './reg';
export * from './context';
export { useGroupPanelParams } from '@/routes/Main/Content/Group/utils';
/**
* @deprecated component
*/
export {
openModal,
closeModal,
ModalWrapper,
useModalContext,
openConfirmModal,
openReconfirmModal,
} from '@/components/Modal';
export { Loadable } from '@/components/Loadable';
export { useIsMobile } from '@/hooks/useIsMobile';
export {
getGlobalState,
useGlobalSocketEvent,
} from '@/utils/global-state-helper';
export { setUserJWT, getJWTUserInfo } from '@/utils/jwt-helper';
export { dataUrlToFile } from '@/utils/file-helper';
export {
urlSearchStringify,
urlSearchParse,
appendUrlSearch,
} from '@/utils/url-helper';
export { getServiceWorkerRegistration } from '@/utils/sw-helper';
export { postMessageEvent } from '@/utils/event-helper';
import {
/**
* : Tailchat requestimport axios()
*
*/
request,
RequestConfig,
useUserInfo,
} from 'tailchat-shared';
export {
getServiceUrl,
getCachedUserInfo,
getCachedConverseInfo,
getCachedBaseGroupInfo,
getCachedUserSettings,
localTrans,
getLanguage,
sharedEvent,
useAsync,
useAsyncFn,
useAsyncRefresh,
useAsyncRequest,
useEvent,
uploadFile,
showToasts,
showSuccessToasts,
showErrorToasts,
fetchAvailableServices,
isValidStr,
useGroupPanelInfo,
sendMessage,
showMessageTime,
joinArray,
useConverseMessageContext,
loginWithToken,
useWatch,
parseUrlStr,
useUpdateRef,
} from 'tailchat-shared';
export { navigate } from '@/components/AppRouterApi';
export { useLocation, useNavigate } from 'react-router';
export {
/**
* @deprecated please use createMetaFormSchema from @capital/component
*/
createMetaFormSchema as createFastFormSchema,
/**
* @deprecated please use metaFormFieldSchema from @capital/component
*/
metaFormFieldSchema as fieldSchema,
getTextColorHex,
} from 'tailchat-design';
/**
* useUserInfo
*/
export function useCurrentUserInfo() {
const userInfo = useUserInfo();
return _pick(userInfo, ['email', 'nickname', 'discriminator', 'avatar']);
}
/**
* axiosrequest config
*
* jwt
*/
function purgeRequestConfig(config?: RequestConfig) {
if (!config) {
return undefined;
}
return _pick(config, [
'transformRequest',
'transformResponse',
'headers',
'params',
'data',
'timeout',
'withCredentials',
'xsrfCookieName',
'xsrfHeaderName',
]);
}
/**
*
*/
export function createPluginRequest(pluginName: string) {
return {
get(actionName: string, config?: RequestConfig) {
return request.get(
`/api/plugin:${pluginName}/${actionName.replace(/\./g, '/')}`,
purgeRequestConfig(config)
);
},
post(actionName: string, data?: any, config?: RequestConfig) {
return request.post(
`/api/plugin:${pluginName}/${actionName.replace(/\./g, '/')}`,
data,
purgeRequestConfig(config)
);
},
};
}
/**
*
*
* plugin
*/
export function postRequest(url: string, data?: any, config?: RequestConfig) {
return request.post(`/api${url}`, data, purgeRequestConfig(config));
}