Skip to content

Commit 366e851

Browse files
authored
[LG-5527] feat(input-bar): add legal disclaimer text with link below input (#3147)
* refactor(input-bar): shared types, InputBarFeedback, and InputBarSendButton * feat(input-bar): add DisclaimerText * chore(input-bar): changeset
1 parent 545c06f commit 366e851

21 files changed

+59
-11
lines changed

.changeset/sweet-eggs-wish.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@lg-chat/input-bar': minor
3+
---
4+
5+
[LG-5527](https://jira.mongodb.org/browse/LG-5527): add legal disclaimer text with link below input
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { css } from '@leafygreen-ui/emotion';
2+
3+
export const linkStyles = css`
4+
font-size: inherit;
5+
`;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import React from 'react';
2+
3+
import { Disclaimer, Link } from '@leafygreen-ui/typography';
4+
5+
import { linkStyles } from './DisclaimerText.styles';
6+
import { type DisclaimerTextProps } from './DisclaimerText.types';
7+
8+
const DISCLAIMER_TEXT = 'AI can make mistakes, so review for accuracy.';
9+
const LEARN_MORE_TEXT = 'Learn more';
10+
const LEARN_MORE_URL = 'https://www.mongodb.com/docs/generative-ai-faq/';
11+
12+
export const DisclaimerText = ({ className, ...rest }: DisclaimerTextProps) => (
13+
<Disclaimer className={className} {...rest}>
14+
{DISCLAIMER_TEXT}{' '}
15+
<Link className={linkStyles} href={LEARN_MORE_URL}>
16+
{LEARN_MORE_TEXT}
17+
</Link>
18+
</Disclaimer>
19+
);
20+
21+
DisclaimerText.displayName = 'DisclaimerText';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { ComponentPropsWithoutRef } from 'react';
2+
3+
export interface DisclaimerTextProps
4+
extends Omit<ComponentPropsWithoutRef<'small'>, 'children'> {}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { DisclaimerText } from './DisclaimerText';

chat/input-bar/src/InputBar/InputBar.spec.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import userEvent from '@testing-library/user-event';
88

99
import { transitionDuration } from '@leafygreen-ui/tokens';
1010

11-
import { State } from './shared.types';
11+
import { State } from '../shared.types';
12+
1213
import { InputBar, InputBarProps } from '.';
1314

1415
const TEST_INPUT_TEXT = 'test';

chat/input-bar/src/InputBar/InputBar.styles.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,3 +321,8 @@ export const getHotkeyIndicatorStyles = ({
321321
[hotkeyIndicatorFocusedStyles]: isFocused,
322322
[hotkeyIndicatorUnfocusedStyles]: !isFocused,
323323
});
324+
325+
export const disclaimerTextStyles = css`
326+
margin-top: ${spacing[50]}px;
327+
margin-left: ${spacing[200]}px;
328+
`;

chat/input-bar/src/InputBar/InputBar.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,16 @@ import {
4545
import { SearchResultsMenu } from '@leafygreen-ui/search-input';
4646
import { breakpoints } from '@leafygreen-ui/tokens';
4747

48+
import { DisclaimerText } from '../DisclaimerText';
49+
import { InputBarFeedback } from '../InputBarFeedback';
50+
import { InputBarSendButton } from '../InputBarSendButton';
51+
import { State } from '../shared.types';
4852
import { setReactTextAreaValue } from '../utils/setReactTextAreaValue';
4953

5054
import {
5155
actionContainerStyles,
5256
adornmentContainerStyles,
57+
disclaimerTextStyles,
5358
getContentWrapperStyles,
5459
getFormStyles,
5560
getHotkeyIndicatorStyles,
@@ -58,9 +63,6 @@ import {
5863
outerFocusContainerStyles,
5964
} from './InputBar.styles';
6065
import { type InputBarProps } from './InputBar.types';
61-
import { InputBarFeedback } from './InputBarFeedback';
62-
import { InputBarSendButton } from './InputBarSendButton';
63-
import { State } from './shared.types';
6466

6567
export const InputBar = forwardRef<HTMLFormElement, InputBarProps>(
6668
(
@@ -498,6 +500,7 @@ export const InputBar = forwardRef<HTMLFormElement, InputBarProps>(
498500
</div>
499501
</div>
500502
</div>
503+
{isCompact && <DisclaimerText className={disclaimerTextStyles} />}
501504
{withTypeAhead && (
502505
<SearchResultsMenu
503506
open={isOpen}

chat/input-bar/src/InputBar/InputBar.types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { TextareaAutosizeProps } from 'react-textarea-autosize';
44
import { DarkModeProps } from '@leafygreen-ui/lib';
55
import { PopoverRenderModeProps } from '@leafygreen-ui/popover';
66

7-
import { SharedInputBarProps } from './shared.types';
7+
import { SharedInputBarProps } from '../shared.types';
88

99
export type InputBarProps = React.ComponentPropsWithoutRef<'form'> &
1010
DarkModeProps &

chat/input-bar/src/InputBar/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@ export {
55
type InputBarProps,
66
type TextareaAutosizeProps,
77
} from './InputBar.types';
8-
export { State } from './shared.types';

0 commit comments

Comments
 (0)