diff --git a/readme.txt b/readme.txt index fc209d7588..917fa78196 100644 --- a/readme.txt +++ b/readme.txt @@ -268,9 +268,10 @@ The 2% fee on Stripe donations only applies to donations taken via our free Stri * Fix: Resolved an issue with the donor export filter by donation form * Fix: Added additional attribute escaping to the donor wall shortcode * Enhancement: Improved current compatibility with PHP 8.2 +* New: The visual donation form builder UI has been improved to be more intuitive with dedicated Build, Design, and Settings screens * New: The donor dashboard now has a way to update and reset passwords * New: Added pre-requisite v3 compatibility updates for the Give Funds and Designations add-on -* New: Added v3 form migration compatibility for select GiveWP add-ons including: Mailchimp and Funds and Designations +* New: Added v3 form migration compatibility for select GiveWP add-ons including: Mailchimp, Funds and Designations, and Per-Form Gateways * New: Added a new programmatic way to interact with the v3 confirmation page using our fields api = 3.2.2: Dec 20th, 2023 = diff --git a/src/DonationForms/resources/app/utilities/memoNode.ts b/src/DonationForms/resources/app/utilities/memoNode.ts index 87242ce336..44f9dc0496 100644 --- a/src/DonationForms/resources/app/utilities/memoNode.ts +++ b/src/DonationForms/resources/app/utilities/memoNode.ts @@ -5,7 +5,7 @@ import {Node} from '@givewp/forms/types'; * This is used for memoizing Node components. Node props come from the server and are never intended to change. The * state of a Node may change, triggering a re-render, but the props should never change. * - * @unreleased updated param and return types + * @since 3.3.0 updated param and return types * @since 3.0.0 */ export default function memoNode(NodeComponent: {({node}: {node: Node}): JSX.Element}): typeof NodeComponent { diff --git a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettings.tsx b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettings.tsx index 9d74c44f13..77af0b28d5 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettings.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettings.tsx @@ -7,7 +7,7 @@ import EmailGeneralSettings from "@givewp/form-builder/settings/group-email-sett import getEmailSettings from "@givewp/form-builder/settings/group-email-settings"; /** - * @unreleased + * @since 3.3.0 */ const routes: Route[] = [ { @@ -37,14 +37,14 @@ const routes: Route[] = [ ]; /** - * @unreleased + * @since 3.3.0 */ export default function FormSettings() { return ; } /** - * @unreleased + * @since 3.3.0 */ function validateRoutes(routes: Route[]): Route[] { const paths = []; @@ -73,7 +73,7 @@ function validateRoutes(routes: Route[]): Route[] { } /** - * @unreleased + * @since 3.3.0 */ function isValidRoute(route: Route) { return ( @@ -86,7 +86,7 @@ function isValidRoute(route: Route) { } /** - * @unreleased + * @since 3.3.0 */ export type Route = { name: string; diff --git a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Content.tsx b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Content.tsx index d983d9ed81..85febd85df 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Content.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Content.tsx @@ -3,7 +3,7 @@ import { Route } from "@givewp/form-builder/components/canvas/FormSettings"; import { setFormSettings, useFormState, useFormStateDispatch } from "@givewp/form-builder/stores/form-state"; /** - * @unreleased + * @since 3.3.0 */ function RenderRoutes({routes}: {routes: Route[]}) { const [state] = useFormSettingsContext(); @@ -29,7 +29,7 @@ function RenderRoutes({routes}: {routes: Route[]}) { } /** - * @unreleased + * @since 3.3.0 */ export default function Content({routes}: {routes: Route[]}) { return ( diff --git a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Menu.tsx b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Menu.tsx index 1553afb814..b9b834b97d 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Menu.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/components/Menu.tsx @@ -11,7 +11,7 @@ import { Route } from "@givewp/form-builder/components/canvas/FormSettings"; import { useFormState } from "@givewp/form-builder/stores/form-state"; /** - * @unreleased + * @since 3.3.0 */ function MenuItem({item}: {item: Route}) { const [state, dispatch] = useFormSettingsContext(); @@ -62,7 +62,7 @@ function MenuItem({item}: {item: Route}) { } /** - * @unreleased + * @since 3.3.0 */ export default function Menu({routes}: {routes: Route[]}) { const [state] = useFormSettingsContext(); diff --git a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/formSettingsReducer.ts b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/formSettingsReducer.ts index ca4acaffc8..ffe5890fa0 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/formSettingsReducer.ts +++ b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/formSettingsReducer.ts @@ -3,7 +3,7 @@ const UPDATE_MENU_STATE = "UPDATE_MENU_STATE"; const NAVIGATE_BACK_IN_MENU = "NAVIGATE_BACK_IN_MENU"; /** - * @unreleased + * @since 3.3.0 */ export const formSettingsReducer = (state: State, action: Action) => { switch (action.type) { @@ -34,7 +34,7 @@ export const formSettingsReducer = (state: State, action: Action) => { } /** - * @unreleased + * @since 3.3.0 */ export const updateMenuState = (hasChildren: boolean, path: string): Action => ({ type: UPDATE_MENU_STATE, @@ -42,14 +42,14 @@ export const updateMenuState = (hasChildren: boolean, path: string): Action => ( }); /** - * @unreleased + * @since 3.3.0 */ export const navigateBackInMenu = (): Action => ({ type: NAVIGATE_BACK_IN_MENU, }); /** - * @unreleased + * @since 3.3.0 */ export type State = { menuPage: number; @@ -58,7 +58,7 @@ export type State = { }; /** - * @unreleased + * @since 3.3.0 */ export type MenuState = { hasChildren: boolean; @@ -66,6 +66,6 @@ export type MenuState = { }; /** - * @unreleased + * @since 3.3.0 */ export type Action = {type: typeof UPDATE_MENU_STATE; payload: MenuState} | {type: typeof NAVIGATE_BACK_IN_MENU}; diff --git a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/index.tsx b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/index.tsx index e6ec133d78..c70b4dff59 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/components/canvas/FormSettingsContainer/index.tsx @@ -10,7 +10,7 @@ import Content from './components/Content'; const FormSettingsContext = createContext<[State, Dispatch] | undefined>(undefined); /** - * @unreleased + * @since 3.3.0 */ export function useFormSettingsContext() { const context = useContext(FormSettingsContext); @@ -23,7 +23,7 @@ export function useFormSettingsContext() { } /** - * @unreleased + * @since 3.3.0 */ export default function FormSettingsContainer({routes}) { const [state, dispatch] = useReducer(formSettingsReducer, { diff --git a/src/FormBuilder/resources/js/form-builder/src/components/settings/PopoverContentWithTemplateTags/index.tsx b/src/FormBuilder/resources/js/form-builder/src/components/settings/PopoverContentWithTemplateTags/index.tsx index d6de963a8c..a56a412f6e 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/settings/PopoverContentWithTemplateTags/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/components/settings/PopoverContentWithTemplateTags/index.tsx @@ -18,7 +18,7 @@ type PopoverContentWithTemplateTagsProps = { }; /** - * @unreleased extracted template tags to be a shared component + * @since 3.3.0 extracted template tags to be a shared component * @since 3.0.0 */ export default function PopoverContentWithTemplateTags({ diff --git a/src/FormBuilder/resources/js/form-builder/src/components/settings/TemplateTags/index.tsx b/src/FormBuilder/resources/js/form-builder/src/components/settings/TemplateTags/index.tsx index 666a4b9f2a..3aa83b250c 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/settings/TemplateTags/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/components/settings/TemplateTags/index.tsx @@ -7,7 +7,7 @@ import { Button } from "@wordpress/components"; import "./styles.scss"; /** - * @unreleased + * @since 3.3.0 */ function CopyTagButton({textToCopy}) { const [isCopied, setCopied] = useState(false); @@ -31,7 +31,7 @@ function CopyTagButton({textToCopy}) { } /** - * @unreleased + * @since 3.3.0 */ export default function TemplateTags({ templateTags, @@ -62,7 +62,7 @@ export default function TemplateTags({ } /** - * @unreleased + * @since 3.3.0 */ export type TemplateTag = { id: string; diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/donation-confirmation/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/donation-confirmation/index.tsx index 76b77ed56d..6aadd04535 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/donation-confirmation/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/donation-confirmation/index.tsx @@ -2,7 +2,7 @@ import { PanelRow } from "@wordpress/components"; import { ClassicEditor } from "@givewp/form-builder-library"; /** - * @unreleased + * @since 3.3.0 */ const DonationConfirmation = ({id, content, onChange}) => { return ( diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/index.tsx index 3d6de09e33..a837ca725c 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-donation-confirmation/index.tsx @@ -8,7 +8,7 @@ import TemplateTags from '@givewp/form-builder/components/settings/TemplateTags' const {donationConfirmationTemplateTags} = getFormBuilderWindowData(); /** - * @unreleased + * @since 3.3.0 */ export default function FormDonationConfirmationSettingsGroup({settings, setSettings}) { const {receiptHeading, receiptDescription} = settings; diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/index.tsx index 8cd512f659..42e06d265b 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/index.tsx @@ -10,7 +10,7 @@ import EmailTemplateSettings from "@givewp/form-builder/settings/group-email-set import TemplateTags from "@givewp/form-builder/components/settings/TemplateTags"; /** - * @unreleased + * @since 3.3.0 */ export default function EmailTemplateOptions({notification, settings, setSettings}) { const [showPreview, setShowPreview] = useState(false); diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/settings.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/settings.tsx index 5b20c508cf..8926d9ef7c 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/settings.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/email/template-options/settings.tsx @@ -7,7 +7,7 @@ import {getFormBuilderWindowData} from '@givewp/form-builder/common/getWindowDat import TrashIcon from './components/TrashIcon'; /** - * @unreleased + * @since 3.3.0 */ type EmailTemplateSettingsProps = { notification: string; @@ -19,7 +19,7 @@ type EmailTemplateSettingsProps = { }; /** - * @unreleased + * @since 3.3.0 */ const EmailTemplateSettings = ({notification, templateTagsRef, settings, setSettings}: EmailTemplateSettingsProps) => { const {emailTemplateOptions} = settings; diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/general/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/general/index.tsx index 7c609e2124..2e28fe4727 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/general/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/general/index.tsx @@ -4,7 +4,7 @@ import { SettingsSection } from "@givewp/form-builder-library"; import LogoUpload from "@givewp/form-builder/settings/group-email-settings/email/logo-upload"; /** - * @unreleased + * @since 3.3.0 */ export default function EmailGeneralSettings({ settings, setSettings }) { const { emailOptionsStatus, emailTemplate, emailLogo, emailFromName, emailFromEmail } = settings; diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/index.tsx index 7be6d1c030..ff36335235 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-email-settings/index.tsx @@ -2,7 +2,7 @@ import { getFormBuilderWindowData } from "@givewp/form-builder/common/getWindowD import EmailTemplateOptions from "./email/template-options"; /** - * @unreleased + * @since 3.3.0 */ const getEmailSettings = () => { const {emailNotifications} = getFormBuilderWindowData(); @@ -20,7 +20,7 @@ const getEmailSettings = () => { }; /** - * @unreleased + * @since 3.3.0 */ const areEmailSettingsEnabled = ({settings}) => { const {emailOptionsStatus} = settings; diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-general/form-grid/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-general/form-grid/index.tsx index 571f0c92b7..b721282d51 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-general/form-grid/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-general/form-grid/index.tsx @@ -2,7 +2,7 @@ import { __ } from "@wordpress/i18n"; import { PanelRow, TextControl, ToggleControl } from "@wordpress/components"; /** - * @unreleased + * @since 3.3.0 */ const FormGridSettings = ({settings, setSettings}) => { const {formGridCustomize, formGridRedirectUrl, formGridDonateButtonText} = settings; diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-general/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-general/index.tsx index e6dac8272c..d48196517c 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-general/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-general/index.tsx @@ -6,7 +6,7 @@ import FormSummarySettings from "./form-summary"; import RegistrationSettings from "./registration"; /** - * @unreleased + * @since 3.3.0 */ export default function FormGeneralSettingsGroup({settings, setSettings}) { const formGridDescription = createInterpolateElement( diff --git a/src/FormBuilder/resources/js/form-builder/src/settings/group-general/registration/index.tsx b/src/FormBuilder/resources/js/form-builder/src/settings/group-general/registration/index.tsx index 9b8a02d953..a9361fe90e 100644 --- a/src/FormBuilder/resources/js/form-builder/src/settings/group-general/registration/index.tsx +++ b/src/FormBuilder/resources/js/form-builder/src/settings/group-general/registration/index.tsx @@ -2,7 +2,7 @@ import { __ } from "@wordpress/i18n"; import { PanelRow, ToggleControl } from "@wordpress/components"; /** - * @unreleased + * @since 3.3.0 */ const RegistrationSettings = ({settings, setSettings}) => { const {registrationNotification} = settings; diff --git a/src/FormMigration/Steps/PerFormGateways.php b/src/FormMigration/Steps/PerFormGateways.php index 7aaf440bd2..25b328b0ba 100644 --- a/src/FormMigration/Steps/PerFormGateways.php +++ b/src/FormMigration/Steps/PerFormGateways.php @@ -5,12 +5,12 @@ use Give\FormMigration\Contracts\FormMigrationStep; /** - * @unreleased + * @since 3.3.0 */ class PerFormGateways extends FormMigrationStep { /** - * @unreleased + * @since 3.3.0 */ public function process() {