diff --git a/src/components/ToolButton.tsx b/src/components/ToolButton.tsx index 6e401a02..14f4b972 100644 --- a/src/components/ToolButton.tsx +++ b/src/components/ToolButton.tsx @@ -1,6 +1,6 @@ import "./ToolIcon.scss"; -import React from "react"; +import React, { useEffect } from "react"; type ToolIconSize = "s" | "m"; @@ -30,10 +30,25 @@ export const ToolButton = React.forwardRef(function( props: ToolButtonProps, ref, ) { - const innerRef = React.useRef(null); + const innerRef = React.useRef( + null, + ); React.useImperativeHandle(ref, () => innerRef.current); const sizeCn = `ToolIcon_size_${props.size || DEFAULT_SIZE}`; + const prevChecked = React.useRef( + "checked" in props && props.checked, + ); + + useEffect(() => { + if (props.type !== "button") { + if (props.checked && !prevChecked.current && innerRef.current) { + innerRef.current.focus(); + } + prevChecked.current = props.checked; + } + }); + if (props.type === "button") return (