0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2024-12-16 20:26:19 -05:00

fix(console): fix passwordless connector tester send failed bug (#6268)

This commit is contained in:
Darcy Ye 2024-07-18 15:53:48 +08:00 committed by GitHub
parent ca73d3142f
commit 6963192ac5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 4 deletions

View file

@ -31,9 +31,13 @@ const useJsonStringConfigParser = () => {
export const useConnectorFormConfigParser = () => {
const parseJsonConfig = useJsonStringConfigParser();
return (data: ConnectorFormType, formItems: ConnectorResponse['formItems']) => {
return (
data: ConnectorFormType,
formItems: ConnectorResponse['formItems'],
skipFalsyValuesRemoval = false
) => {
return formItems
? parseFormConfig(data.formConfig, formItems)
? parseFormConfig(data.formConfig, formItems, skipFalsyValuesRemoval)
: parseJsonConfig(data.jsonConfig);
};
};

View file

@ -68,7 +68,11 @@ function ConnectorContent({ isDeleted, connectorData, onConnectorUpdated }: Prop
const { syncProfile, name, logo, logoDark, target, rawConfig } = data;
// Apply the raw config first to avoid losing data updated from other forms that are not
// included in the form items.
const config = removeFalsyValues({ ...rawConfig, ...configParser(data, formItems) });
// Explicitly SKIP falsy values removal logic (the last argument of `configParser()` method) for social connectors.
const config = removeFalsyValues({
...rawConfig,
...configParser(data, formItems, isSocialConnector),
});
const payload = isSocialConnector
? {

View file

@ -22,11 +22,17 @@ const initFormData = (formItems: ConnectorConfigFormItem[], config?: Record<stri
export const parseFormConfig = (
config: Record<string, unknown>,
formItems: ConnectorConfigFormItem[]
formItems: ConnectorConfigFormItem[],
skipFalsyValuesRemoval = false
) => {
return Object.fromEntries(
Object.entries(config)
.map(([key, value]) => {
// Filter out empty input
if (!skipFalsyValuesRemoval && value === '') {
return null;
}
const formItem = formItems.find((item) => item.key === key);
if (!formItem) {