From 7699eed54bf31804746a6f05a32e70f780a4180b Mon Sep 17 00:00:00 2001 From: Erick Danzer Date: Fri, 3 Oct 2025 12:57:36 -0600 Subject: [PATCH 1/6] Forms: add store for integrations --- .../src/dashboard/integrations/index.tsx | 14 ++++- .../src/store/integrations/action-types.ts | 4 ++ .../forms/src/store/integrations/actions.ts | 30 ++++++++++ .../forms/src/store/integrations/index.ts | 20 +++++++ .../forms/src/store/integrations/reducer.ts | 55 +++++++++++++++++++ .../forms/src/store/integrations/resolvers.ts | 26 +++++++++ .../forms/src/store/integrations/selectors.ts | 6 ++ .../forms/src/store/integrations/types.ts | 28 ++++++++++ 8 files changed, 180 insertions(+), 3 deletions(-) create mode 100644 projects/packages/forms/src/store/integrations/action-types.ts create mode 100644 projects/packages/forms/src/store/integrations/actions.ts create mode 100644 projects/packages/forms/src/store/integrations/index.ts create mode 100644 projects/packages/forms/src/store/integrations/reducer.ts create mode 100644 projects/packages/forms/src/store/integrations/resolvers.ts create mode 100644 projects/packages/forms/src/store/integrations/selectors.ts create mode 100644 projects/packages/forms/src/store/integrations/types.ts diff --git a/projects/packages/forms/src/dashboard/integrations/index.tsx b/projects/packages/forms/src/dashboard/integrations/index.tsx index eba2a78274093..cb4fe4871664d 100644 --- a/projects/packages/forms/src/dashboard/integrations/index.tsx +++ b/projects/packages/forms/src/dashboard/integrations/index.tsx @@ -2,12 +2,13 @@ * External dependencies */ import jetpackAnalytics from '@automattic/jetpack-analytics'; +import { useSelect, useDispatch } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; import { useState, useCallback } from 'react'; /** * Internal dependencies */ -import { useIntegrationsStatus } from '../../blocks/contact-form/components/jetpack-integrations-modal/hooks/use-integrations-status'; +import { INTEGRATIONS_STORE } from '../../store/integrations'; import AkismetDashboardCard from './akismet-card'; import CreativeMailDashboardCard from './creative-mail-card'; import GoogleSheetsDashboardCard from './google-sheets-card'; @@ -18,10 +19,17 @@ import './style.scss'; /** * Types */ +import type { SelectIntegrations, IntegrationsDispatch } from '../../store/integrations'; import type { Integration } from '../../types'; const Integrations = () => { - const { integrations, refreshIntegrations } = useIntegrationsStatus(); + const { integrations } = useSelect( ( select: SelectIntegrations ) => { + const store = select( INTEGRATIONS_STORE ); + return { + integrations: store.getIntegrations() || [], + }; + }, [] ) as { integrations: Integration[] }; + const { refreshIntegrations } = useDispatch( INTEGRATIONS_STORE ) as IntegrationsDispatch; const [ expandedCards, setExpandedCards ] = useState( { akismet: false, googleSheets: false, @@ -63,7 +71,7 @@ const Integrations = () => { const handleToggleMailPoet = useCallback( () => toggleCard( 'mailpoet' ), [ toggleCard ] ); const findIntegrationById = ( id: string ) => - integrations?.find( ( integration: Integration ) => integration.id === id ); + integrations.find( integration => integration.id === id ); // Only supported integrations will be returned from endpoint. const akismetData = findIntegrationById( 'akismet' ); diff --git a/projects/packages/forms/src/store/integrations/action-types.ts b/projects/packages/forms/src/store/integrations/action-types.ts new file mode 100644 index 0000000000000..712041f3441fd --- /dev/null +++ b/projects/packages/forms/src/store/integrations/action-types.ts @@ -0,0 +1,4 @@ +export const RECEIVE_INTEGRATIONS = 'RECEIVE_INTEGRATIONS'; +export const INVALIDATE_INTEGRATIONS = 'INVALIDATE_INTEGRATIONS'; +export const SET_INTEGRATIONS_LOADING = 'SET_INTEGRATIONS_LOADING'; +export const SET_INTEGRATIONS_ERROR = 'SET_INTEGRATIONS_ERROR'; diff --git a/projects/packages/forms/src/store/integrations/actions.ts b/projects/packages/forms/src/store/integrations/actions.ts new file mode 100644 index 0000000000000..d35db2243808c --- /dev/null +++ b/projects/packages/forms/src/store/integrations/actions.ts @@ -0,0 +1,30 @@ +import { + RECEIVE_INTEGRATIONS, + INVALIDATE_INTEGRATIONS, + SET_INTEGRATIONS_LOADING, + SET_INTEGRATIONS_ERROR, +} from './action-types'; +import { getIntegrations } from './resolvers'; +import type { Integration } from '../../types'; + +export const receiveIntegrations = ( items: Integration[] ) => ( { + type: RECEIVE_INTEGRATIONS, + items, +} ); + +export const invalidateIntegrations = () => ( { + type: INVALIDATE_INTEGRATIONS, +} ); + +export const setIntegrationsLoading = ( isLoading: boolean ) => ( { + type: SET_INTEGRATIONS_LOADING, + isLoading, +} ); + +export const setIntegrationsError = ( error: string | null ) => ( { + type: SET_INTEGRATIONS_ERROR, + error, +} ); + +// Thunk-like action to immediately refresh from the endpoint +export const refreshIntegrations = () => getIntegrations(); diff --git a/projects/packages/forms/src/store/integrations/index.ts b/projects/packages/forms/src/store/integrations/index.ts new file mode 100644 index 0000000000000..29186b1d24510 --- /dev/null +++ b/projects/packages/forms/src/store/integrations/index.ts @@ -0,0 +1,20 @@ +import { createReduxStore, register } from '@wordpress/data'; +import * as actions from './actions'; +import reducer from './reducer'; +import * as resolvers from './resolvers'; +import * as selectors from './selectors'; + +export const INTEGRATIONS_STORE = 'jetpack/forms/integrations'; + +export const store = createReduxStore( INTEGRATIONS_STORE, { + reducer, + actions, + selectors, + resolvers, +} ); + +register( store ); + +export * from './actions'; +export * from './selectors'; +export * from './types'; diff --git a/projects/packages/forms/src/store/integrations/reducer.ts b/projects/packages/forms/src/store/integrations/reducer.ts new file mode 100644 index 0000000000000..7b2ca6d6820b1 --- /dev/null +++ b/projects/packages/forms/src/store/integrations/reducer.ts @@ -0,0 +1,55 @@ +import { + RECEIVE_INTEGRATIONS, + INVALIDATE_INTEGRATIONS, + SET_INTEGRATIONS_LOADING, + SET_INTEGRATIONS_ERROR, +} from './action-types'; +import type { IntegrationsState, IntegrationsAction } from './types'; + +const DEFAULT_STATE: IntegrationsState = { + items: null, + isLoading: false, + error: null, +}; + +/** + * Integrations store reducer. + * + * @param state Current state. + * @param action Dispatched action. + * @return Updated state. + */ +export default function reducer( + state: IntegrationsState = DEFAULT_STATE, + action: IntegrationsAction +): IntegrationsState { + switch ( action.type ) { + case SET_INTEGRATIONS_LOADING: + return { + ...state, + isLoading: !! action.isLoading, + error: action.isLoading ? null : state.error, + }; + case SET_INTEGRATIONS_ERROR: + return { + ...state, + isLoading: false, + error: action.error ?? 'Unknown error', + }; + case RECEIVE_INTEGRATIONS: + return { + ...state, + items: action.items, + isLoading: false, + error: null, + }; + case INVALIDATE_INTEGRATIONS: + return { + ...state, + items: null, + isLoading: false, + }; + default: + return state; + } +} diff --git a/projects/packages/forms/src/store/integrations/resolvers.ts b/projects/packages/forms/src/store/integrations/resolvers.ts new file mode 100644 index 0000000000000..d634bb1e69b99 --- /dev/null +++ b/projects/packages/forms/src/store/integrations/resolvers.ts @@ -0,0 +1,26 @@ +import apiFetch from '@wordpress/api-fetch'; +import { addQueryArgs } from '@wordpress/url'; +import { INVALIDATE_INTEGRATIONS } from './action-types'; +import { receiveIntegrations, setIntegrationsError, setIntegrationsLoading } from './actions'; +import type { IntegrationsAction } from './types'; +import type { Integration } from '../../types'; + +export const getIntegrations = + () => + async ( { dispatch }: { dispatch: ( action: IntegrationsAction ) => void } ) => { + dispatch( setIntegrationsLoading( true ) ); + try { + const path = addQueryArgs( '/wp/v2/feedback/integrations', { version: 2 } ); + const result = await apiFetch< Integration[] >( { path } ); + dispatch( receiveIntegrations( result ) ); + } catch ( e ) { + const message = e instanceof Error ? e.message : 'Unknown error'; + dispatch( setIntegrationsError( message ) ); + } finally { + dispatch( setIntegrationsLoading( false ) ); + } + }; + +// Attach invalidation rule +getIntegrations.shouldInvalidate = ( action: IntegrationsAction ) => + action.type === INVALIDATE_INTEGRATIONS; diff --git a/projects/packages/forms/src/store/integrations/selectors.ts b/projects/packages/forms/src/store/integrations/selectors.ts new file mode 100644 index 0000000000000..3ebd2117ee7ed --- /dev/null +++ b/projects/packages/forms/src/store/integrations/selectors.ts @@ -0,0 +1,6 @@ +import type { IntegrationsState } from './types'; +import type { Integration } from '../../types'; + +export const getIntegrations = ( state: IntegrationsState ): Integration[] | null => state.items; +export const isIntegrationsLoading = ( state: IntegrationsState ): boolean => state.isLoading; +export const getIntegrationsError = ( state: IntegrationsState ): string | null => state.error; diff --git a/projects/packages/forms/src/store/integrations/types.ts b/projects/packages/forms/src/store/integrations/types.ts new file mode 100644 index 0000000000000..195f0172b11fe --- /dev/null +++ b/projects/packages/forms/src/store/integrations/types.ts @@ -0,0 +1,28 @@ +import { INTEGRATIONS_STORE } from '.'; +import type { Integration } from '../../types'; + +export type IntegrationsState = { + items: Integration[] | null; + isLoading: boolean; + error: string | null; +}; + +export type IntegrationsAction = { + type: string; + items?: Integration[]; + isLoading?: boolean; + error?: string | null; +}; + +export type IntegrationsSelectors = { + getIntegrations: () => Integration[] | null; + isIntegrationsLoading: () => boolean; + getIntegrationsError: () => string | null; +}; + +export type IntegrationsDispatch = { + refreshIntegrations: () => Promise< void >; + invalidateIntegrations: () => void; +}; + +export type SelectIntegrations = ( store: typeof INTEGRATIONS_STORE ) => IntegrationsSelectors; From 4adbba3dbf0e3912a9ab9cd352301a1580400775 Mon Sep 17 00:00:00 2001 From: Erick Danzer Date: Fri, 3 Oct 2025 13:04:54 -0600 Subject: [PATCH 2/6] changelog --- .../packages/forms/changelog/add-forms-integrations-store | 4 ++++ .../plugins/jetpack/changelog/add-forms-integrations-store | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 projects/packages/forms/changelog/add-forms-integrations-store create mode 100644 projects/plugins/jetpack/changelog/add-forms-integrations-store diff --git a/projects/packages/forms/changelog/add-forms-integrations-store b/projects/packages/forms/changelog/add-forms-integrations-store new file mode 100644 index 0000000000000..be3295dada259 --- /dev/null +++ b/projects/packages/forms/changelog/add-forms-integrations-store @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Forms: add integrations store. diff --git a/projects/plugins/jetpack/changelog/add-forms-integrations-store b/projects/plugins/jetpack/changelog/add-forms-integrations-store new file mode 100644 index 0000000000000..767811ab8711d --- /dev/null +++ b/projects/plugins/jetpack/changelog/add-forms-integrations-store @@ -0,0 +1,4 @@ +Significance: minor +Type: enhancement + +Forms: add integrations store. From bf6737edc6e9bae042828fdbb4ad7c2c0fe086c3 Mon Sep 17 00:00:00 2001 From: Erick Danzer Date: Fri, 3 Oct 2025 14:10:36 -0600 Subject: [PATCH 3/6] Fix linting issues --- projects/packages/forms/src/store/integrations/reducer.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/packages/forms/src/store/integrations/reducer.ts b/projects/packages/forms/src/store/integrations/reducer.ts index 7b2ca6d6820b1..40f8e14fcf900 100644 --- a/projects/packages/forms/src/store/integrations/reducer.ts +++ b/projects/packages/forms/src/store/integrations/reducer.ts @@ -15,9 +15,9 @@ const DEFAULT_STATE: IntegrationsState = { /** * Integrations store reducer. * - * @param state Current state. - * @param action Dispatched action. - * @return Updated state. + * @param state - Current state + * @param action - Dispatched action + * @return Updated state */ export default function reducer( state: IntegrationsState = DEFAULT_STATE, From 81bbaeb2ef05ba664fe9bf7bc4ad289f878ef70c Mon Sep 17 00:00:00 2001 From: Erick Danzer Date: Tue, 7 Oct 2025 11:15:12 -0600 Subject: [PATCH 4/6] Translate error message --- .../calypsoify/node_modules/.bin/sass | 21 +++++++++++++++++++ .../calypsoify/node_modules/.bin/webpack | 21 +++++++++++++++++++ .../calypsoify/node_modules/.bin/webpack-cli | 21 +++++++++++++++++++ .../@automattic/calypso-color-schemes | 1 + .../@automattic/jetpack-webpack-config | 1 + .../@wordpress/browserslist-config | 1 + .../calypsoify/node_modules/@wordpress/data | 1 + .../packages/calypsoify/node_modules/react | 1 + .../calypsoify/node_modules/sass-embedded | 1 + .../calypsoify/node_modules/sass-loader | 1 + .../packages/calypsoify/node_modules/webpack | 1 + .../calypsoify/node_modules/webpack-cli | 1 + .../forms/src/store/integrations/reducer.ts | 3 ++- .../forms/src/store/integrations/resolvers.ts | 3 ++- 14 files changed, 76 insertions(+), 2 deletions(-) create mode 100755 projects/packages/calypsoify/node_modules/.bin/sass create mode 100755 projects/packages/calypsoify/node_modules/.bin/webpack create mode 100755 projects/packages/calypsoify/node_modules/.bin/webpack-cli create mode 120000 projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes create mode 120000 projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config create mode 120000 projects/packages/calypsoify/node_modules/@wordpress/browserslist-config create mode 120000 projects/packages/calypsoify/node_modules/@wordpress/data create mode 120000 projects/packages/calypsoify/node_modules/react create mode 120000 projects/packages/calypsoify/node_modules/sass-embedded create mode 120000 projects/packages/calypsoify/node_modules/sass-loader create mode 120000 projects/packages/calypsoify/node_modules/webpack create mode 120000 projects/packages/calypsoify/node_modules/webpack-cli diff --git a/projects/packages/calypsoify/node_modules/.bin/sass b/projects/packages/calypsoify/node_modules/.bin/sass new file mode 100755 index 0000000000000..7fc278c7a76b5 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/.bin/sass @@ -0,0 +1,21 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules" +else + export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules:$NODE_PATH" +fi +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../sass-embedded/dist/bin/sass.js" "$@" +else + exec node "$basedir/../sass-embedded/dist/bin/sass.js" "$@" +fi diff --git a/projects/packages/calypsoify/node_modules/.bin/webpack b/projects/packages/calypsoify/node_modules/.bin/webpack new file mode 100755 index 0000000000000..62a595952f2c2 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/.bin/webpack @@ -0,0 +1,21 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules" +else + export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules:$NODE_PATH" +fi +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../webpack/bin/webpack.js" "$@" +else + exec node "$basedir/../webpack/bin/webpack.js" "$@" +fi diff --git a/projects/packages/calypsoify/node_modules/.bin/webpack-cli b/projects/packages/calypsoify/node_modules/.bin/webpack-cli new file mode 100755 index 0000000000000..0686c8469f78b --- /dev/null +++ b/projects/packages/calypsoify/node_modules/.bin/webpack-cli @@ -0,0 +1,21 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules" +else + export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules:$NODE_PATH" +fi +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../webpack-cli/bin/cli.js" "$@" +else + exec node "$basedir/../webpack-cli/bin/cli.js" "$@" +fi diff --git a/projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes b/projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes new file mode 120000 index 0000000000000..b6eb3a2f3e892 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes @@ -0,0 +1 @@ +../../../../../node_modules/.pnpm/@automattic+calypso-color-schemes@4.0.0/node_modules/@automattic/calypso-color-schemes \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config b/projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config new file mode 120000 index 0000000000000..ababfc5fcf987 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config @@ -0,0 +1 @@ +../../../../js-packages/webpack-config \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/@wordpress/browserslist-config b/projects/packages/calypsoify/node_modules/@wordpress/browserslist-config new file mode 120000 index 0000000000000..bba3de47941cf --- /dev/null +++ b/projects/packages/calypsoify/node_modules/@wordpress/browserslist-config @@ -0,0 +1 @@ +../../../../../node_modules/.pnpm/@wordpress+browserslist-config@6.31.0/node_modules/@wordpress/browserslist-config \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/@wordpress/data b/projects/packages/calypsoify/node_modules/@wordpress/data new file mode 120000 index 0000000000000..83bfcc1a3cec2 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/@wordpress/data @@ -0,0 +1 @@ +../../../../../node_modules/.pnpm/@wordpress+data@10.31.0_react@18.3.1/node_modules/@wordpress/data \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/react b/projects/packages/calypsoify/node_modules/react new file mode 120000 index 0000000000000..f17f0bcab3a62 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/react @@ -0,0 +1 @@ +../../../../node_modules/.pnpm/react@18.3.1/node_modules/react \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/sass-embedded b/projects/packages/calypsoify/node_modules/sass-embedded new file mode 120000 index 0000000000000..540fe8caec69f --- /dev/null +++ b/projects/packages/calypsoify/node_modules/sass-embedded @@ -0,0 +1 @@ +../../../../node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/sass-loader b/projects/packages/calypsoify/node_modules/sass-loader new file mode 120000 index 0000000000000..0086dcdbca425 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/sass-loader @@ -0,0 +1 @@ +../../../../node_modules/.pnpm/sass-loader@16.0.5_sass-embedded@1.87.0_webpack@5.101.3/node_modules/sass-loader \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/webpack b/projects/packages/calypsoify/node_modules/webpack new file mode 120000 index 0000000000000..f7295032bd8a9 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/webpack @@ -0,0 +1 @@ +../../../../node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/webpack-cli b/projects/packages/calypsoify/node_modules/webpack-cli new file mode 120000 index 0000000000000..236e6f2dd1a11 --- /dev/null +++ b/projects/packages/calypsoify/node_modules/webpack-cli @@ -0,0 +1 @@ +../../../../node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli \ No newline at end of file diff --git a/projects/packages/forms/src/store/integrations/reducer.ts b/projects/packages/forms/src/store/integrations/reducer.ts index 40f8e14fcf900..66107d801b580 100644 --- a/projects/packages/forms/src/store/integrations/reducer.ts +++ b/projects/packages/forms/src/store/integrations/reducer.ts @@ -1,3 +1,4 @@ +import { __ } from '@wordpress/i18n'; import { RECEIVE_INTEGRATIONS, INVALIDATE_INTEGRATIONS, @@ -34,7 +35,7 @@ export default function reducer( return { ...state, isLoading: false, - error: action.error ?? 'Unknown error', + error: action.error ?? __( 'Unknown error', 'jetpack-forms' ), }; case RECEIVE_INTEGRATIONS: return { diff --git a/projects/packages/forms/src/store/integrations/resolvers.ts b/projects/packages/forms/src/store/integrations/resolvers.ts index d634bb1e69b99..7174fb97da59f 100644 --- a/projects/packages/forms/src/store/integrations/resolvers.ts +++ b/projects/packages/forms/src/store/integrations/resolvers.ts @@ -1,4 +1,5 @@ import apiFetch from '@wordpress/api-fetch'; +import { __ } from '@wordpress/i18n'; import { addQueryArgs } from '@wordpress/url'; import { INVALIDATE_INTEGRATIONS } from './action-types'; import { receiveIntegrations, setIntegrationsError, setIntegrationsLoading } from './actions'; @@ -14,7 +15,7 @@ export const getIntegrations = const result = await apiFetch< Integration[] >( { path } ); dispatch( receiveIntegrations( result ) ); } catch ( e ) { - const message = e instanceof Error ? e.message : 'Unknown error'; + const message = e instanceof Error ? e.message : __( 'Unknown error', 'jetpack-forms' ); dispatch( setIntegrationsError( message ) ); } finally { dispatch( setIntegrationsLoading( false ) ); From 5572556c5e460df2bb124f6be05312357798b2f4 Mon Sep 17 00:00:00 2001 From: Erick Danzer Date: Tue, 7 Oct 2025 22:24:22 -0600 Subject: [PATCH 5/6] Revert "Translate error message" This reverts commit 96c68c5967b41c5c85026e8e7c650ad82796a126. --- .../calypsoify/node_modules/.bin/sass | 21 ------------------- .../calypsoify/node_modules/.bin/webpack | 21 ------------------- .../calypsoify/node_modules/.bin/webpack-cli | 21 ------------------- .../@automattic/calypso-color-schemes | 1 - .../@automattic/jetpack-webpack-config | 1 - .../@wordpress/browserslist-config | 1 - .../calypsoify/node_modules/@wordpress/data | 1 - .../packages/calypsoify/node_modules/react | 1 - .../calypsoify/node_modules/sass-embedded | 1 - .../calypsoify/node_modules/sass-loader | 1 - .../packages/calypsoify/node_modules/webpack | 1 - .../calypsoify/node_modules/webpack-cli | 1 - .../forms/src/store/integrations/reducer.ts | 3 +-- .../forms/src/store/integrations/resolvers.ts | 3 +-- 14 files changed, 2 insertions(+), 76 deletions(-) delete mode 100755 projects/packages/calypsoify/node_modules/.bin/sass delete mode 100755 projects/packages/calypsoify/node_modules/.bin/webpack delete mode 100755 projects/packages/calypsoify/node_modules/.bin/webpack-cli delete mode 120000 projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes delete mode 120000 projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config delete mode 120000 projects/packages/calypsoify/node_modules/@wordpress/browserslist-config delete mode 120000 projects/packages/calypsoify/node_modules/@wordpress/data delete mode 120000 projects/packages/calypsoify/node_modules/react delete mode 120000 projects/packages/calypsoify/node_modules/sass-embedded delete mode 120000 projects/packages/calypsoify/node_modules/sass-loader delete mode 120000 projects/packages/calypsoify/node_modules/webpack delete mode 120000 projects/packages/calypsoify/node_modules/webpack-cli diff --git a/projects/packages/calypsoify/node_modules/.bin/sass b/projects/packages/calypsoify/node_modules/.bin/sass deleted file mode 100755 index 7fc278c7a76b5..0000000000000 --- a/projects/packages/calypsoify/node_modules/.bin/sass +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -z "$NODE_PATH" ]; then - export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules" -else - export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/dist/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/sass-embedded@1.87.0/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules:$NODE_PATH" -fi -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../sass-embedded/dist/bin/sass.js" "$@" -else - exec node "$basedir/../sass-embedded/dist/bin/sass.js" "$@" -fi diff --git a/projects/packages/calypsoify/node_modules/.bin/webpack b/projects/packages/calypsoify/node_modules/.bin/webpack deleted file mode 100755 index 62a595952f2c2..0000000000000 --- a/projects/packages/calypsoify/node_modules/.bin/webpack +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -z "$NODE_PATH" ]; then - export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules" -else - export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules:$NODE_PATH" -fi -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack/bin/webpack.js" "$@" -else - exec node "$basedir/../webpack/bin/webpack.js" "$@" -fi diff --git a/projects/packages/calypsoify/node_modules/.bin/webpack-cli b/projects/packages/calypsoify/node_modules/.bin/webpack-cli deleted file mode 100755 index 0686c8469f78b..0000000000000 --- a/projects/packages/calypsoify/node_modules/.bin/webpack-cli +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -z "$NODE_PATH" ]; then - export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules" -else - export NODE_PATH="/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/bin/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules:/Users/erickdanzer/Projects/Automattic/ciab/jetpack/node_modules/.pnpm/node_modules:$NODE_PATH" -fi -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack-cli/bin/cli.js" "$@" -else - exec node "$basedir/../webpack-cli/bin/cli.js" "$@" -fi diff --git a/projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes b/projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes deleted file mode 120000 index b6eb3a2f3e892..0000000000000 --- a/projects/packages/calypsoify/node_modules/@automattic/calypso-color-schemes +++ /dev/null @@ -1 +0,0 @@ -../../../../../node_modules/.pnpm/@automattic+calypso-color-schemes@4.0.0/node_modules/@automattic/calypso-color-schemes \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config b/projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config deleted file mode 120000 index ababfc5fcf987..0000000000000 --- a/projects/packages/calypsoify/node_modules/@automattic/jetpack-webpack-config +++ /dev/null @@ -1 +0,0 @@ -../../../../js-packages/webpack-config \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/@wordpress/browserslist-config b/projects/packages/calypsoify/node_modules/@wordpress/browserslist-config deleted file mode 120000 index bba3de47941cf..0000000000000 --- a/projects/packages/calypsoify/node_modules/@wordpress/browserslist-config +++ /dev/null @@ -1 +0,0 @@ -../../../../../node_modules/.pnpm/@wordpress+browserslist-config@6.31.0/node_modules/@wordpress/browserslist-config \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/@wordpress/data b/projects/packages/calypsoify/node_modules/@wordpress/data deleted file mode 120000 index 83bfcc1a3cec2..0000000000000 --- a/projects/packages/calypsoify/node_modules/@wordpress/data +++ /dev/null @@ -1 +0,0 @@ -../../../../../node_modules/.pnpm/@wordpress+data@10.31.0_react@18.3.1/node_modules/@wordpress/data \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/react b/projects/packages/calypsoify/node_modules/react deleted file mode 120000 index f17f0bcab3a62..0000000000000 --- a/projects/packages/calypsoify/node_modules/react +++ /dev/null @@ -1 +0,0 @@ -../../../../node_modules/.pnpm/react@18.3.1/node_modules/react \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/sass-embedded b/projects/packages/calypsoify/node_modules/sass-embedded deleted file mode 120000 index 540fe8caec69f..0000000000000 --- a/projects/packages/calypsoify/node_modules/sass-embedded +++ /dev/null @@ -1 +0,0 @@ -../../../../node_modules/.pnpm/sass-embedded@1.87.0/node_modules/sass-embedded \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/sass-loader b/projects/packages/calypsoify/node_modules/sass-loader deleted file mode 120000 index 0086dcdbca425..0000000000000 --- a/projects/packages/calypsoify/node_modules/sass-loader +++ /dev/null @@ -1 +0,0 @@ -../../../../node_modules/.pnpm/sass-loader@16.0.5_sass-embedded@1.87.0_webpack@5.101.3/node_modules/sass-loader \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/webpack b/projects/packages/calypsoify/node_modules/webpack deleted file mode 120000 index f7295032bd8a9..0000000000000 --- a/projects/packages/calypsoify/node_modules/webpack +++ /dev/null @@ -1 +0,0 @@ -../../../../node_modules/.pnpm/webpack@5.101.3_webpack-cli@6.0.1/node_modules/webpack \ No newline at end of file diff --git a/projects/packages/calypsoify/node_modules/webpack-cli b/projects/packages/calypsoify/node_modules/webpack-cli deleted file mode 120000 index 236e6f2dd1a11..0000000000000 --- a/projects/packages/calypsoify/node_modules/webpack-cli +++ /dev/null @@ -1 +0,0 @@ -../../../../node_modules/.pnpm/webpack-cli@6.0.1_webpack@5.101.3/node_modules/webpack-cli \ No newline at end of file diff --git a/projects/packages/forms/src/store/integrations/reducer.ts b/projects/packages/forms/src/store/integrations/reducer.ts index 66107d801b580..40f8e14fcf900 100644 --- a/projects/packages/forms/src/store/integrations/reducer.ts +++ b/projects/packages/forms/src/store/integrations/reducer.ts @@ -1,4 +1,3 @@ -import { __ } from '@wordpress/i18n'; import { RECEIVE_INTEGRATIONS, INVALIDATE_INTEGRATIONS, @@ -35,7 +34,7 @@ export default function reducer( return { ...state, isLoading: false, - error: action.error ?? __( 'Unknown error', 'jetpack-forms' ), + error: action.error ?? 'Unknown error', }; case RECEIVE_INTEGRATIONS: return { diff --git a/projects/packages/forms/src/store/integrations/resolvers.ts b/projects/packages/forms/src/store/integrations/resolvers.ts index 7174fb97da59f..d634bb1e69b99 100644 --- a/projects/packages/forms/src/store/integrations/resolvers.ts +++ b/projects/packages/forms/src/store/integrations/resolvers.ts @@ -1,5 +1,4 @@ import apiFetch from '@wordpress/api-fetch'; -import { __ } from '@wordpress/i18n'; import { addQueryArgs } from '@wordpress/url'; import { INVALIDATE_INTEGRATIONS } from './action-types'; import { receiveIntegrations, setIntegrationsError, setIntegrationsLoading } from './actions'; @@ -15,7 +14,7 @@ export const getIntegrations = const result = await apiFetch< Integration[] >( { path } ); dispatch( receiveIntegrations( result ) ); } catch ( e ) { - const message = e instanceof Error ? e.message : __( 'Unknown error', 'jetpack-forms' ); + const message = e instanceof Error ? e.message : 'Unknown error'; dispatch( setIntegrationsError( message ) ); } finally { dispatch( setIntegrationsLoading( false ) ); From 428427813b0552446d40b95ed0b113f619129ec2 Mon Sep 17 00:00:00 2001 From: Erick Danzer Date: Tue, 7 Oct 2025 22:29:43 -0600 Subject: [PATCH 6/6] Translate error messages --- projects/packages/forms/src/store/integrations/reducer.ts | 3 ++- projects/packages/forms/src/store/integrations/resolvers.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/projects/packages/forms/src/store/integrations/reducer.ts b/projects/packages/forms/src/store/integrations/reducer.ts index 40f8e14fcf900..66107d801b580 100644 --- a/projects/packages/forms/src/store/integrations/reducer.ts +++ b/projects/packages/forms/src/store/integrations/reducer.ts @@ -1,3 +1,4 @@ +import { __ } from '@wordpress/i18n'; import { RECEIVE_INTEGRATIONS, INVALIDATE_INTEGRATIONS, @@ -34,7 +35,7 @@ export default function reducer( return { ...state, isLoading: false, - error: action.error ?? 'Unknown error', + error: action.error ?? __( 'Unknown error', 'jetpack-forms' ), }; case RECEIVE_INTEGRATIONS: return { diff --git a/projects/packages/forms/src/store/integrations/resolvers.ts b/projects/packages/forms/src/store/integrations/resolvers.ts index d634bb1e69b99..7174fb97da59f 100644 --- a/projects/packages/forms/src/store/integrations/resolvers.ts +++ b/projects/packages/forms/src/store/integrations/resolvers.ts @@ -1,4 +1,5 @@ import apiFetch from '@wordpress/api-fetch'; +import { __ } from '@wordpress/i18n'; import { addQueryArgs } from '@wordpress/url'; import { INVALIDATE_INTEGRATIONS } from './action-types'; import { receiveIntegrations, setIntegrationsError, setIntegrationsLoading } from './actions'; @@ -14,7 +15,7 @@ export const getIntegrations = const result = await apiFetch< Integration[] >( { path } ); dispatch( receiveIntegrations( result ) ); } catch ( e ) { - const message = e instanceof Error ? e.message : 'Unknown error'; + const message = e instanceof Error ? e.message : __( 'Unknown error', 'jetpack-forms' ); dispatch( setIntegrationsError( message ) ); } finally { dispatch( setIntegrationsLoading( false ) );