diff --git a/shesha-core/src/Shesha.Application/ConfigMigrations/package20260316_1451.shaconfig b/shesha-core/src/Shesha.Application/ConfigMigrations/package20260316_1451.shaconfig
new file mode 100644
index 0000000000..0023e4d75f
Binary files /dev/null and b/shesha-core/src/Shesha.Application/ConfigMigrations/package20260316_1451.shaconfig differ
diff --git a/shesha-core/src/Shesha.Application/Shesha.Application.csproj b/shesha-core/src/Shesha.Application/Shesha.Application.csproj
index 081a970944..ed91fd3624 100644
--- a/shesha-core/src/Shesha.Application/Shesha.Application.csproj
+++ b/shesha-core/src/Shesha.Application/Shesha.Application.csproj
@@ -124,6 +124,7 @@
+
@@ -145,6 +146,7 @@
+
diff --git a/shesha-reactjs/src/components/dynamicModal/index.tsx b/shesha-reactjs/src/components/dynamicModal/index.tsx
index c86f534fbf..f35298fa25 100644
--- a/shesha-reactjs/src/components/dynamicModal/index.tsx
+++ b/shesha-reactjs/src/components/dynamicModal/index.tsx
@@ -81,7 +81,8 @@ export const DynamicModalWithForm: FC = (props) => {
const [isSubmitted, setIsSubmitted] = useState(false);
// `showModalFooter` for now is for backward compatibility
- const showDefaultSubmitButtons = showModalFooter || footerButtons === 'default';
+ // If `footerButtons` is explicitly set, it takes precedence over the legacy `showModalFooter` flag
+ const showDefaultSubmitButtons = footerButtons ? footerButtons === 'default' : (showModalFooter ?? false);
const closeModal = (): void => {
removeModal(id);