mirror of
https://github.com/logto-io/logto.git
synced 2025-01-27 21:39:16 -05:00
chore: check connector related types and eliminate redundancy (#1925)
This commit is contained in:
parent
14cb0439e3
commit
31ecfd0b96
10 changed files with 28 additions and 29 deletions
|
@ -1,10 +1,10 @@
|
|||
import { ConnectorMetadata } from '@logto/schemas';
|
||||
import { fireEvent } from '@testing-library/react';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
|
||||
import renderWithPageContext from '@/__mocks__/RenderWithPageContext';
|
||||
import SettingsProvider from '@/__mocks__/RenderWithPageContext/SettingsProvider';
|
||||
import { socialConnectors } from '@/__mocks__/logto';
|
||||
import { ConnectorData } from '@/types';
|
||||
|
||||
import SocialSignInDropdown from '.';
|
||||
|
||||
|
@ -12,7 +12,7 @@ const mockInvokeSocialSignIn = jest.fn();
|
|||
|
||||
// eslint-disable-next-line unicorn/consistent-function-scoping
|
||||
jest.mock('@/hooks/use-social', () => () => ({
|
||||
invokeSocialSignIn: (connector: ConnectorData) => {
|
||||
invokeSocialSignIn: (connector: ConnectorMetadata) => {
|
||||
mockInvokeSocialSignIn(connector);
|
||||
},
|
||||
}));
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { ConnectorMetadata } from '@logto/schemas';
|
||||
import { getDefaultLanguage } from '@logto/shared';
|
||||
import { useState, useCallback } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import Dropdown, { DropdownItem } from '@/components/Dropdown';
|
||||
import useSocial from '@/hooks/use-social';
|
||||
import { ConnectorData } from '@/types';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
|
@ -12,7 +12,7 @@ type Props = {
|
|||
anchorRef?: React.RefObject<HTMLElement>;
|
||||
isOpen: boolean;
|
||||
onClose: () => void;
|
||||
connectors: ConnectorData[];
|
||||
connectors: ConnectorMetadata[];
|
||||
};
|
||||
|
||||
const SocialSignInDropdown = ({ isOpen, onClose, connectors, anchorRef }: Props) => {
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import { ConnectorMetadata } from '@logto/schemas';
|
||||
import classNames from 'classnames';
|
||||
|
||||
import MoreSocialIcon from '@/assets/icons/more-social-icon.svg';
|
||||
import IconButton from '@/components/Button/IconButton';
|
||||
import SocialIconButton from '@/components/Button/SocialIconButton';
|
||||
import useSocial from '@/hooks/use-social';
|
||||
import { ConnectorData } from '@/types';
|
||||
import { isAppleConnector } from '@/utils/social-connectors';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
type Props = {
|
||||
className?: string;
|
||||
connectors?: ConnectorData[];
|
||||
connectors?: ConnectorMetadata[];
|
||||
hasMore?: boolean;
|
||||
moreButtonRef: React.RefObject<HTMLButtonElement>;
|
||||
onMoreButtonClick?: () => void;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { ConnectorMetadata } from '@logto/schemas';
|
||||
import classNames from 'classnames';
|
||||
import { useState, useMemo } from 'react';
|
||||
|
||||
|
@ -5,7 +6,6 @@ import ExpandIcon from '@/assets/icons/expand-icon.svg';
|
|||
import IconButton from '@/components/Button/IconButton';
|
||||
import SocialLinkButton from '@/components/Button/SocialLinkButton';
|
||||
import useSocial from '@/hooks/use-social';
|
||||
import { ConnectorData } from '@/types';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
|
@ -13,7 +13,7 @@ export const defaultSize = 4;
|
|||
|
||||
type Props = {
|
||||
className?: string;
|
||||
socialConnectors?: ConnectorData[];
|
||||
socialConnectors?: ConnectorMetadata[];
|
||||
isCollapseEnabled?: boolean;
|
||||
onSocialSignInCallback?: () => void;
|
||||
};
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
import { ConnectorMetadata } from '@logto/schemas';
|
||||
|
||||
import Drawer from '@/components/Drawer';
|
||||
import { ConnectorData } from '@/types';
|
||||
|
||||
import SocialSignInList from '../SocialSignInList';
|
||||
|
||||
type Props = {
|
||||
connectors?: ConnectorData[];
|
||||
connectors?: ConnectorMetadata[];
|
||||
className?: string;
|
||||
isOpen?: boolean;
|
||||
onClose: () => void;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { ConnectorMetadata } from '@logto/schemas';
|
||||
import { useCallback, useContext } from 'react';
|
||||
|
||||
import { invokeSocialSignIn } from '@/apis/social';
|
||||
import { ConnectorData } from '@/types';
|
||||
import { getLogtoNativeSdk, isNativeWebview } from '@/utils/native-sdk';
|
||||
import { generateState, storeState, buildSocialLandingUri } from '@/utils/social-connectors';
|
||||
|
||||
|
@ -15,7 +15,7 @@ const useSocial = () => {
|
|||
|
||||
const { run: asyncInvokeSocialSignIn } = useApi(invokeSocialSignIn);
|
||||
|
||||
const nativeSignInHandler = useCallback((redirectTo: string, connector: ConnectorData) => {
|
||||
const nativeSignInHandler = useCallback((redirectTo: string, connector: ConnectorMetadata) => {
|
||||
const { id: connectorId, platform } = connector;
|
||||
|
||||
const redirectUri =
|
||||
|
@ -30,7 +30,7 @@ const useSocial = () => {
|
|||
}, []);
|
||||
|
||||
const invokeSocialSignInHandler = useCallback(
|
||||
async (connector: ConnectorData) => {
|
||||
async (connector: ConnectorMetadata) => {
|
||||
if (!(await termsValidation())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { SignInMode } from '@logto/schemas';
|
||||
import { SignInMode, ConnectorMetadata } from '@logto/schemas';
|
||||
|
||||
import Divider from '@/components/Divider';
|
||||
import TextLink from '@/components/TextLink';
|
||||
|
@ -8,7 +8,7 @@ import SignInMethodsLink from '@/containers/SignInMethodsLink';
|
|||
import { PrimarySocialSignIn, SecondarySocialSignIn } from '@/containers/SocialSignIn';
|
||||
import TermsOfUse from '@/containers/TermsOfUse';
|
||||
import UsernameSignin from '@/containers/UsernameSignin';
|
||||
import { SignInMethod, LocalSignInMethod, ConnectorData } from '@/types';
|
||||
import { SignInMethod, LocalSignInMethod } from '@/types';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
|
@ -18,7 +18,7 @@ export const PrimarySection = ({
|
|||
signInMode,
|
||||
}: {
|
||||
signInMethod?: SignInMethod;
|
||||
socialConnectors?: ConnectorData[];
|
||||
socialConnectors?: ConnectorMetadata[];
|
||||
signInMode?: SignInMode;
|
||||
}) => {
|
||||
switch (signInMethod) {
|
||||
|
@ -61,7 +61,7 @@ export const SecondarySection = ({
|
|||
}: {
|
||||
primarySignInMethod?: SignInMethod;
|
||||
secondarySignInMethods?: SignInMethod[];
|
||||
socialConnectors?: ConnectorData[];
|
||||
socialConnectors?: ConnectorMetadata[];
|
||||
}) => {
|
||||
if (!primarySignInMethod || !secondarySignInMethods?.length) {
|
||||
return null;
|
||||
|
|
|
@ -15,10 +15,8 @@ export type Platform = 'web' | 'mobile';
|
|||
|
||||
export type Theme = 'dark' | 'light';
|
||||
|
||||
export type ConnectorData = ConnectorMetadata & { id: string };
|
||||
|
||||
export type SignInExperienceSettingsResponse = SignInExperience & {
|
||||
socialConnectors: ConnectorData[];
|
||||
socialConnectors: ConnectorMetadata[];
|
||||
notification?: string;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { ConnectorPlatform } from '@logto/schemas';
|
||||
import { ConnectorPlatform, ConnectorMetadata } from '@logto/schemas';
|
||||
|
||||
import { ConnectorData, SearchParameters } from '@/types';
|
||||
import { SearchParameters } from '@/types';
|
||||
import { getLogtoNativeSdk, isNativeWebview } from '@/utils/native-sdk';
|
||||
|
||||
import {
|
||||
|
@ -16,7 +16,7 @@ const mockConnectors = [
|
|||
{ platform: 'Universal', target: 'wechat' },
|
||||
{ platform: 'Native', target: 'wechat' },
|
||||
{ platform: 'Native', target: 'alipay' },
|
||||
] as ConnectorData[];
|
||||
] as ConnectorMetadata[];
|
||||
|
||||
jest.mock('@/utils/native-sdk', () => ({
|
||||
isNativeWebview: jest.fn(),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { ConnectorPlatform } from '@logto/schemas';
|
||||
import { ConnectorMetadata, ConnectorPlatform } from '@logto/schemas';
|
||||
|
||||
import { ConnectorData, SearchParameters } from '@/types';
|
||||
import { SearchParameters } from '@/types';
|
||||
import { generateRandomString } from '@/utils';
|
||||
import { getLogtoNativeSdk, isNativeWebview } from '@/utils/native-sdk';
|
||||
|
||||
|
@ -56,12 +56,12 @@ export const getCallbackLinkFromStorage = (connectorId: string) => {
|
|||
/**
|
||||
* Social Connectors Filter Utility Methods
|
||||
*/
|
||||
export const filterSocialConnectors = (socialConnectors?: ConnectorData[]) => {
|
||||
export const filterSocialConnectors = (socialConnectors?: ConnectorMetadata[]) => {
|
||||
if (!socialConnectors) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const connectorMap = new Map<string, ConnectorData>();
|
||||
const connectorMap = new Map<string, ConnectorMetadata>();
|
||||
|
||||
/**
|
||||
* Browser Environment
|
||||
|
@ -142,13 +142,13 @@ export const filterSocialConnectors = (socialConnectors?: ConnectorData[]) => {
|
|||
*/
|
||||
export const filterPreviewSocialConnectors = (
|
||||
platform: ConnectorPlatform.Native | ConnectorPlatform.Web,
|
||||
socialConnectors?: ConnectorData[]
|
||||
socialConnectors?: ConnectorMetadata[]
|
||||
) => {
|
||||
if (!socialConnectors) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const connectorMap = new Map<string, ConnectorData>();
|
||||
const connectorMap = new Map<string, ConnectorMetadata>();
|
||||
|
||||
/**
|
||||
* Browser Environment
|
||||
|
|
Loading…
Add table
Reference in a new issue