Skip to content

Commit

Permalink
feat(ModalSideBySideLayout): side by side layout component for new Modal
Browse files Browse the repository at this point in the history
  • Loading branch information
YossiSaadi committed Oct 14, 2024
1 parent a3c0347 commit 9d43dca
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.layout {
width: 100%;
flex-grow: 1;
overflow: hidden;

.leftPane {
height: 100%;
width: 60%;
padding-inline: var(--modal-inline-padding);

.header {
width: 100%;
margin-block: var(--spacing-xl) var(--spacing-large);
}

.content {
width: 100%;
}
}

.media {
flex-shrink: 0;
width: 40%;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import React, { forwardRef } from "react";
import cx from "classnames";
import { getTestId } from "../../../../tests/test-ids-utils";
import { ComponentDefaultTestId } from "../../../../tests/constants";
import styles from "./ModalSideBySideLayout.module.scss";
import { ModalSideBySideLayoutProps } from "./ModalSideBySideLayout.types";
import Flex from "../../../Flex/Flex";

const ModalSideBySideLayout = forwardRef(
(
{ children, className, id, "data-testid": dataTestId }: ModalSideBySideLayoutProps,
ref: React.ForwardedRef<HTMLDivElement>
) => {
const [header, content, media] = React.Children.toArray(children);
return (
<Flex
ref={ref}
className={cx(styles.layout, className)}
id={id}
data-testid={dataTestId || getTestId(ComponentDefaultTestId.MODAL_NEXT_SIDE_BY_SIDE_LAYOUT, id)}
>
<Flex direction={Flex.directions.COLUMN} align={Flex.align.START} className={styles.leftPane}>
<div className={styles.header}>{header}</div>
<div className={styles.content}>{content}</div>
</Flex>
<div className={styles.media}>{media}</div>
</Flex>
);
}
);

export default ModalSideBySideLayout;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { VibeComponentProps } from "../../../../types";
import React from "react";

export interface ModalSideBySideLayoutProps extends VibeComponentProps {
children: React.ReactNode;
}
2 changes: 2 additions & 0 deletions packages/core/src/tests/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,9 @@ export enum ComponentDefaultTestId {
MODAL_NEXT_OVERLAY = "modal-overlay",
MODAL_NEXT_HEADER = "modal-header",
MODAL_NEXT_CONTENT = "modal-content",
MODAL_NEXT_MEDIA = "modal-media",
MODAL_NEXT_BASIC_LAYOUT = "modal-basic-layout",
MODAL_NEXT_SIDE_BY_SIDE_LAYOUT = "modal-side_by_side-layout",
FORMATTED_NUMBER = "formatted-number",
HIDDEN_TEXT = "hidden-text",
DIALOG_CONTENT_CONTAINER = "dialog-content-container",
Expand Down

0 comments on commit 9d43dca

Please sign in to comment.