From fbb4f29d3b86a6a727f8ce792d6ae62a65390f2a Mon Sep 17 00:00:00 2001 From: Maksym Yadlovskyi Date: Thu, 13 Nov 2025 14:18:37 +0100 Subject: [PATCH] Position leftCol component to the left in ModalSubmit (#24111) --- changelog/unreleased/issue-24110.toml | 5 ++ .../components/bootstrap/ButtonToolbar.tsx | 10 ++- .../components/common/ModalButtonToolbar.tsx | 3 - .../src/components/common/ModalSubmit.tsx | 73 +++++++++++-------- 4 files changed, 54 insertions(+), 37 deletions(-) create mode 100644 changelog/unreleased/issue-24110.toml diff --git a/changelog/unreleased/issue-24110.toml b/changelog/unreleased/issue-24110.toml new file mode 100644 index 0000000000..90b5bf2713 --- /dev/null +++ b/changelog/unreleased/issue-24110.toml @@ -0,0 +1,5 @@ +type = "f" +message = "Fix issue with left button position by moving it to the left." + +issues = ["24110"] +pulls = ["24111"] diff --git a/graylog2-web-interface/src/components/bootstrap/ButtonToolbar.tsx b/graylog2-web-interface/src/components/bootstrap/ButtonToolbar.tsx index 211c89d174..c14f690eed 100644 --- a/graylog2-web-interface/src/components/bootstrap/ButtonToolbar.tsx +++ b/graylog2-web-interface/src/components/bootstrap/ButtonToolbar.tsx @@ -15,13 +15,15 @@ * . */ import * as React from 'react'; -import styled from 'styled-components'; +import styled, { css } from 'styled-components'; import OriginalButtonGroup from './ButtonGroup'; -const StyledButtonToolbar = styled(OriginalButtonGroup)` - gap: 0.25em; -`; +const StyledButtonToolbar = styled(OriginalButtonGroup)( + ({ theme }) => css` + gap: ${theme.spacings.xs}; + `, +); const ButtonToolbar = ({ ...props }: React.ComponentProps) => ( diff --git a/graylog2-web-interface/src/components/common/ModalButtonToolbar.tsx b/graylog2-web-interface/src/components/common/ModalButtonToolbar.tsx index da9d403801..65c7cdeec0 100644 --- a/graylog2-web-interface/src/components/common/ModalButtonToolbar.tsx +++ b/graylog2-web-interface/src/components/common/ModalButtonToolbar.tsx @@ -19,9 +19,6 @@ import styled from 'styled-components'; import ButtonToolbar from 'components/bootstrap/ButtonToolbar'; const ModalButtonToolbar = styled(ButtonToolbar)` - display: flex; justify-content: flex-end; - align-items: end; - gap: 0.25em; `; export default ModalButtonToolbar; diff --git a/graylog2-web-interface/src/components/common/ModalSubmit.tsx b/graylog2-web-interface/src/components/common/ModalSubmit.tsx index 4efeef2950..a9959e63cf 100644 --- a/graylog2-web-interface/src/components/common/ModalSubmit.tsx +++ b/graylog2-web-interface/src/components/common/ModalSubmit.tsx @@ -18,13 +18,24 @@ import * as React from 'react'; import { useEffect, useRef } from 'react'; import type { SyntheticEvent } from 'react'; +import styled, { css } from 'styled-components'; -import Button from 'components/bootstrap/Button'; +import { Button } from 'components/bootstrap'; import type { IconName } from 'components/common/Icon'; import Icon from 'components/common/Icon'; import Spinner from 'components/common/Spinner'; import ModalButtonToolbar from 'components/common/ModalButtonToolbar'; +const Container = styled.div<{ $hasLeftCol: boolean }>( + ({ $hasLeftCol }) => + $hasLeftCol && + css` + display: flex; + justify-content: space-between; + align-items: end; + `, +); + const buttonTitle = (isSubmitting: boolean, submitText: React.ReactNode, submitLoadingText: string) => { if (isSubmitting && typeof submitLoadingText === 'string') { return submitLoadingText; @@ -110,37 +121,39 @@ const ModalSubmit = ({ ...props }: Props) => { }, []); return ( - + {leftCol} - {isWithCancelProps(props) && ( - - )} - )} - {submittingAsync ? : submitButtonText} - - + + + ); };