diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettings.tsx b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettings.tsx index b93533ae2..f75e61788 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettings.tsx +++ b/apps/builder/src/features/blocks/integrations/googleSheets/components/GoogleSheetsSettings.tsx @@ -228,7 +228,7 @@ const ActionOptions = ({ case GoogleSheetsAction.GET: return ( - {options.referenceCell ? ( + {options.referenceCell && ( <> Row to select - ) : ( + )} + {options.filter && ( <> Filter diff --git a/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts b/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts index 0c17c2e9f..c79d40483 100644 --- a/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts +++ b/apps/builder/src/features/blocks/integrations/googleSheets/googleSheets.spec.ts @@ -136,9 +136,7 @@ test.describe.parallel('Google sheets integration', () => { .press('Enter') await expect( page.locator('typebot-standard').locator('text=Your name is:') - ).toHaveText( - `Your name is: ["Georges","John","Fred","Georges","Georges"] ["Last name","Smith","Smith"]` - ) + ).toHaveText(`Your name is: Georges Smith`) }) }) diff --git a/apps/viewer/src/features/blocks/integrations/googleSheets/getRow.ts b/apps/viewer/src/features/blocks/integrations/googleSheets/getRow.ts index 4a65b95e2..63d7fde9e 100644 --- a/apps/viewer/src/features/blocks/integrations/googleSheets/getRow.ts +++ b/apps/viewer/src/features/blocks/integrations/googleSheets/getRow.ts @@ -43,7 +43,7 @@ export const getRow = async ( const filteredRows = rows.filter((row) => referenceCell ? row[referenceCell.column as string] === referenceCell.value - : matchFilter(row, filter) + : matchFilter(row, filter as NonNullable) ) if (filteredRows.length === 0) { log = { @@ -104,7 +104,7 @@ export const getRow = async ( const matchFilter = ( row: GoogleSpreadsheetRow, - filter: GoogleSheetsGetOptions['filter'] + filter: NonNullable ) => { return filter.logicalOperator === LogicalOperator.AND ? filter.comparisons.every( diff --git a/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts b/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts index db2eb8482..b5592a735 100644 --- a/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts +++ b/apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts @@ -75,7 +75,7 @@ const getRows = async (req: NextApiRequest, res: NextApiResponse) => { const filteredRows = rows.filter((row) => referenceCell ? row[referenceCell.column as string] === referenceCell.value - : matchFilter(row, filter) + : matchFilter(row, filter as NonNullable) ) if (filteredRows.length === 0) { await saveErrorLog({ @@ -181,7 +181,7 @@ const updateRow = async (req: NextApiRequest, res: NextApiResponse) => { const matchFilter = ( row: GoogleSpreadsheetRow, - filter: GoogleSheetsGetOptions['filter'] + filter: NonNullable ) => { return filter.logicalOperator === LogicalOperator.AND ? filter.comparisons.every( diff --git a/packages/schemas/features/blocks/integrations/googleSheets/schemas.ts b/packages/schemas/features/blocks/integrations/googleSheets/schemas.ts index 4ca983f2e..c90d47db2 100644 --- a/packages/schemas/features/blocks/integrations/googleSheets/schemas.ts +++ b/packages/schemas/features/blocks/integrations/googleSheets/schemas.ts @@ -40,10 +40,12 @@ const googleSheetsGetOptionsSchema = googleSheetsOptionsBaseSchema.merge( action: z.enum([GoogleSheetsAction.GET]), // TODO: remove referenceCell once migrated to filtering referenceCell: cellSchema.optional(), - filter: z.object({ - comparisons: z.array(rowsFilterComparisonSchema), - logicalOperator: z.nativeEnum(LogicalOperator), - }), + filter: z + .object({ + comparisons: z.array(rowsFilterComparisonSchema), + logicalOperator: z.nativeEnum(LogicalOperator), + }) + .optional(), cellsToExtract: z.array(extractingCellSchema), }) )