0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-03-24 22:41:28 -05:00

feat(console): init connector page (#331)

This commit is contained in:
Wang Sijie 2022-03-07 13:58:07 +08:00 committed by GitHub
parent 5368cb31f6
commit 12769e277b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 51 additions and 16 deletions

View file

@ -11,6 +11,7 @@ import Topbar from './components/Topbar';
import initI18n from './i18n/init';
import ApiResources from './pages/ApiResources';
import Applications from './pages/Applications';
import Connector from './pages/Connectors/Connector';
import { fetcher } from './swr';
const isBasenameNeeded = process.env.NODE_ENV !== 'development' || process.env.PORT === '5002';
@ -37,6 +38,7 @@ const Main = () => {
<Routes>
<Route path="api-resources" element={<ApiResources />} />
<Route path="applications" element={<Applications />} />
<Route path="connectors/:connectorId" element={<Connector />} />
</Routes>
</Content>
</div>

View file

@ -0,0 +1,24 @@
import { ConnectorDTO } from '@logto/schemas';
import React from 'react';
import { useParams } from 'react-router-dom';
import useSWR from 'swr';
import Card from '@/components/Card';
import { RequestError } from '@/swr';
const Connector = () => {
const { connectorId } = useParams();
const { data, error } = useSWR<ConnectorDTO, RequestError>(
connectorId && `/api/connectors/${connectorId}`
);
const isLoading = !data && !error;
return (
<Card>
{isLoading && 'loading'}
{error && error}
</Card>
);
};
export default Connector;

View file

@ -1,19 +1,8 @@
import { Languages } from '@logto/phrases';
import { ArbitraryObject, Connector, PasscodeType } from '@logto/schemas';
import { ArbitraryObject, Connector, PasscodeType, ConnectorMetadata } from '@logto/schemas';
import { z } from 'zod';
export enum ConnectorType {
SMS = 'SMS',
Email = 'Email',
Social = 'Social',
}
export interface ConnectorMetadata {
id: string;
type: ConnectorType;
name: Record<Languages, string>;
logo: string;
description: Record<Languages, string>;
}
export { ConnectorType } from '@logto/schemas';
export type { ConnectorMetadata } from '@logto/schemas';
// The name `Connector` is used for database, use `ConnectorInstance` to avoid confusing.
export type IConnector = SmsConnector | EmailConnector | SocialConnector;

View file

@ -1,4 +1,4 @@
import { Connectors } from '@logto/schemas';
import { ConnectorDTO, Connectors } from '@logto/schemas';
import { object, string } from 'zod';
import { getConnectorInstances, getConnectorInstanceById } from '@/connectors';
@ -8,7 +8,7 @@ import { updateConnector } from '@/queries/connector';
import { AuthedRouter } from './types';
const transpileConnectorInstance = ({ connector, metadata }: ConnectorInstance) => ({
const transpileConnectorInstance = ({ connector, metadata }: ConnectorInstance): ConnectorDTO => ({
...connector,
metadata,
});

View file

@ -0,0 +1,19 @@
import { Languages } from '@logto/phrases';
import { Connector } from '../db-entries';
export enum ConnectorType {
SMS = 'SMS',
Email = 'Email',
Social = 'Social',
}
export interface ConnectorMetadata {
id: string;
type: ConnectorType;
name: Record<Languages, string>;
logo: string;
description: Record<Languages, string>;
}
export interface ConnectorDTO extends Connector {
metadata: ConnectorMetadata;
}

View file

@ -1 +1,2 @@
export * from './user';
export * from './connector';