Skip to content

Commit 3471b94

Browse files
authored
Update React ref objects to be explicitly nullable (where appropriate) (#3132)
1 parent 0700607 commit 3471b94

File tree

32 files changed

+77
-48
lines changed

32 files changed

+77
-48
lines changed

.changeset/kind-pans-rule.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
'@leafygreen-ui/segmented-control': patch
3+
'@leafygreen-ui/expandable-card': patch
4+
'@leafygreen-ui/context-drawer': patch
5+
'@leafygreen-ui/password-input': patch
6+
'@lg-chat/fixed-chat-window': patch
7+
'@lg-chat/message-feedback': patch
8+
'@leafygreen-ui/preview-card': patch
9+
'@leafygreen-ui/search-input': patch
10+
'@leafygreen-ui/date-picker': patch
11+
'@lg-chat/message-rating': patch
12+
'@leafygreen-ui/resizable': patch
13+
'@lg-chat/message-feed': patch
14+
'@leafygreen-ui/combobox': patch
15+
'@leafygreen-ui/copyable': patch
16+
'@leafygreen-ui/tooltip': patch
17+
'@leafygreen-ui/ripple': patch
18+
'@leafygreen-ui/select': patch
19+
'@lg-chat/input-bar': patch
20+
'@leafygreen-ui/hooks': patch
21+
'@leafygreen-ui/table': patch
22+
'@leafygreen-ui/toast': patch
23+
'@leafygreen-ui/code': patch
24+
'@leafygreen-ui/menu': patch
25+
'@lg-chat/message': patch
26+
'@leafygreen-ui/lib': patch
27+
---
28+
29+
Update React ref objects to be explicitly nullable

chat/fixed-chat-window/src/FixedChatWindow/FixedChatWindow.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const FixedChatWindow = forwardRef(
4141
}: FixedChatWindowProps,
4242
ref: ForwardedRef<HTMLDivElement>,
4343
) => {
44-
const chatWindowRef = useRef<HTMLDivElement>(null);
44+
const chatWindowRef = useRef<HTMLDivElement | null>(null);
4545
const [localOpen, setLocalOpen] = useState<boolean>(defaultOpen);
4646

4747
const handleTriggerClick: MouseEventHandler<HTMLButtonElement> = e => {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ describe('packages/input-bar', () => {
155155

156156
test('provides access to textarea element via textareaRef', () => {
157157
const TestComponent = () => {
158-
const textareaRef = useRef<HTMLTextAreaElement>(null);
158+
const textareaRef = useRef<HTMLTextAreaElement | null>(null);
159159

160160
const handleClick = () => {
161161
if (textareaRef.current) {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ export const InputBar = forwardRef<HTMLFormElement, InputBarProps>(
106106
}
107107

108108
const formRef = useForwardedRef(forwardedRef, null);
109-
const focusContainerRef = useRef<HTMLDivElement>(null);
110-
const menuRef = useRef<HTMLUListElement>(null);
111-
const internalTextareaRef = useRef<HTMLTextAreaElement>(null);
109+
const focusContainerRef = useRef<HTMLDivElement | null>(null);
110+
const menuRef = useRef<HTMLUListElement | null>(null);
111+
const internalTextareaRef = useRef<HTMLTextAreaElement | null>(null);
112112
const textareaRef = useMergeRefs([
113113
internalTextareaRef,
114114
externalTextareaRef,

chat/message-feed/src/MessageFeed/MessageFeed.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export const MessageFeed = forwardRef(
3131
const { darkMode, theme } = useDarkMode(darkModeProp);
3232
const { variant } = useLeafyGreenChatContext();
3333

34-
const scrollContainerRef = useRef<HTMLDivElement>(null);
34+
const scrollContainerRef = useRef<HTMLDivElement | null>(null);
3535
const scrollTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
3636

3737
const [showScrollButton, setShowScrollButton] = useState(false);

chat/message-feedback/src/InlineMessageFeedback/InlineMessageFeedback.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ export const InlineMessageFeedback = forwardRef(
7272
const textareaId = useIdAllocator({ prefix: 'lg-chat-imf-input' });
7373
const labelId = useIdAllocator({ prefix: 'lg-chat-imf-label' });
7474
const textareaRef: MutableRefObject<HTMLTextAreaElement | null> =
75-
useRef<HTMLTextAreaElement>(null);
75+
useRef<HTMLTextAreaElement | null>(null);
7676

7777
const handleSubmit: FormEventHandler<HTMLFormElement> = async e => {
7878
e.preventDefault();

chat/message-rating/src/MessageRating/MessageRating.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ export const MessageRating = forwardRef(
5252
);
5353
}
5454

55-
const likeButtonRef = useRef<HTMLButtonElement>(null);
56-
const dislikeButtonRef = useRef<HTMLButtonElement>(null);
55+
const likeButtonRef = useRef<HTMLButtonElement | null>(null);
56+
const dislikeButtonRef = useRef<HTMLButtonElement | null>(null);
5757

5858
const { value, handleChange, updateValue } = useControlledValue<
5959
MessageRatingProps['value']

chat/message/src/MessageBanner/MessageBanner.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function MessageBanner({
1313
variant = 'info',
1414
...divProps
1515
}: MessageBannerProps) {
16-
const bannerRef = useRef<HTMLDivElement>(null);
16+
const bannerRef = useRef<HTMLDivElement | null>(null);
1717
const [isMultiline, setIsMultiline] = useState(false);
1818
const baseFontSize = useBaseFontSize();
1919
useEffect(() => {

packages/code/src/Code/Code.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function Code({
5353
baseFontSize: baseFontSizeProp,
5454
...rest
5555
}: CodeProps) {
56-
const scrollableElementRef = useRef<HTMLPreElement>(null);
56+
const scrollableElementRef = useRef<HTMLPreElement | null>(null);
5757
const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.None);
5858
const [expanded, setExpanded] = useState(!expandable);
5959
const [numOfLinesOfCode, setNumOfLinesOfCode] = useState<number>();

packages/code/src/CopyButton/CopyButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ function CopyButton({ onCopy, contents, className, ...rest }: CopyProps) {
3232
* changes, it causes the tooltip to re-render
3333
*/
3434
const [tooltipOpen, setTooltipOpen] = useState(false);
35-
const buttonRef = useRef<HTMLButtonElement>(null);
35+
const buttonRef = useRef<HTMLButtonElement | null>(null);
3636
const timeoutRef = useRef<NodeJS.Timeout | null>(null);
3737
const { theme } = useDarkMode();
3838
const { portalContainer } = usePopoverPortalContainer();

0 commit comments

Comments
 (0)