♻️ refactor(helpers): refactor the components/utils.js to helpers/api.js and related imports
This commit is contained in:
@@ -46,7 +46,7 @@ import {
|
|||||||
IconCopy,
|
IconCopy,
|
||||||
IconSmallTriangleRight
|
IconSmallTriangleRight
|
||||||
} from '@douyinfe/semi-icons';
|
} from '@douyinfe/semi-icons';
|
||||||
import { loadChannelModels } from './utils.js';
|
import { loadChannelModels } from '../helpers';
|
||||||
import EditTagModal from '../pages/Channel/EditTagModal.js';
|
import EditTagModal from '../pages/Channel/EditTagModal.js';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import {
|
|||||||
onGitHubOAuthClicked,
|
onGitHubOAuthClicked,
|
||||||
onLinuxDOOAuthClicked,
|
onLinuxDOOAuthClicked,
|
||||||
onOIDCClicked,
|
onOIDCClicked,
|
||||||
} from './utils.js';
|
} from '../helpers';
|
||||||
import OIDCIcon from './common/logo/OIDCIcon.js';
|
import OIDCIcon from './common/logo/OIDCIcon.js';
|
||||||
import LinuxDoIcon from './common/logo/LinuxDoIcon.js';
|
import LinuxDoIcon from './common/logo/LinuxDoIcon.js';
|
||||||
import WeChatIcon from './common/logo/WeChatIcon.js';
|
import WeChatIcon from './common/logo/WeChatIcon.js';
|
||||||
|
|||||||
@@ -134,4 +134,81 @@ export const processGroupsData = (data, userGroup) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return groupOptions;
|
return groupOptions;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 原来components中的utils.js
|
||||||
|
|
||||||
|
export async function getOAuthState() {
|
||||||
|
let path = '/api/oauth/state';
|
||||||
|
let affCode = localStorage.getItem('aff');
|
||||||
|
if (affCode && affCode.length > 0) {
|
||||||
|
path += `?aff=${affCode}`;
|
||||||
|
}
|
||||||
|
const res = await API.get(path);
|
||||||
|
const { success, message, data } = res.data;
|
||||||
|
if (success) {
|
||||||
|
return data;
|
||||||
|
} else {
|
||||||
|
showError(message);
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function onOIDCClicked(auth_url, client_id, openInNewTab = false) {
|
||||||
|
const state = await getOAuthState();
|
||||||
|
if (!state) return;
|
||||||
|
const redirect_uri = `${window.location.origin}/oauth/oidc`;
|
||||||
|
const response_type = 'code';
|
||||||
|
const scope = 'openid profile email';
|
||||||
|
const url = `${auth_url}?client_id=${client_id}&redirect_uri=${redirect_uri}&response_type=${response_type}&scope=${scope}&state=${state}`;
|
||||||
|
if (openInNewTab) {
|
||||||
|
window.open(url);
|
||||||
|
} else {
|
||||||
|
window.location.href = url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function onGitHubOAuthClicked(github_client_id) {
|
||||||
|
const state = await getOAuthState();
|
||||||
|
if (!state) return;
|
||||||
|
window.open(
|
||||||
|
`https://github.com/login/oauth/authorize?client_id=${github_client_id}&state=${state}&scope=user:email`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function onLinuxDOOAuthClicked(linuxdo_client_id) {
|
||||||
|
const state = await getOAuthState();
|
||||||
|
if (!state) return;
|
||||||
|
window.open(
|
||||||
|
`https://connect.linux.do/oauth2/authorize?response_type=code&client_id=${linuxdo_client_id}&state=${state}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
let channelModels = undefined;
|
||||||
|
export async function loadChannelModels() {
|
||||||
|
const res = await API.get('/api/models');
|
||||||
|
const { success, data } = res.data;
|
||||||
|
if (!success) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
channelModels = data;
|
||||||
|
localStorage.setItem('channel_models', JSON.stringify(data));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getChannelModels(type) {
|
||||||
|
if (channelModels !== undefined && type in channelModels) {
|
||||||
|
if (!channelModels[type]) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
return channelModels[type];
|
||||||
|
}
|
||||||
|
let models = localStorage.getItem('channel_models');
|
||||||
|
if (!models) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
channelModels = JSON.parse(models);
|
||||||
|
if (type in channelModels) {
|
||||||
|
return channelModels[type];
|
||||||
|
}
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import {
|
|||||||
Card,
|
Card,
|
||||||
Tag,
|
Tag,
|
||||||
} from '@douyinfe/semi-ui';
|
} from '@douyinfe/semi-ui';
|
||||||
import { getChannelModels } from '../../components/utils.js';
|
import { getChannelModels } from '../../helpers';
|
||||||
import {
|
import {
|
||||||
IconSave,
|
IconSave,
|
||||||
IconClose,
|
IconClose,
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import {
|
|||||||
IconUser,
|
IconUser,
|
||||||
IconCode,
|
IconCode,
|
||||||
} from '@douyinfe/semi-icons';
|
} from '@douyinfe/semi-icons';
|
||||||
import { getChannelModels } from '../../components/utils.js';
|
import { getChannelModels } from '../../helpers';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
const { Text, Title } = Typography;
|
const { Text, Title } = Typography;
|
||||||
|
|||||||
Reference in New Issue
Block a user