| ... | ... | @@ -169,37 +169,45 @@ export function PreviewChromeRow({ |
| 169 | 169 | </div> |
| 170 | 170 | |
| 171 | 171 | <InputGroup className="group/address h-7 flex-1 rounded-md border-transparent bg-transparent shadow-none before:shadow-none hover:bg-muted/40 focus-within:bg-background"> |
| 172 | | <InputGroupInput |
| 173 | | ref={inputRef} |
| 174 | | value={inputFocused ? draft : (displayUrl ?? draft)} |
| 175 | | className={cn( |
| 176 | | onOpenInBrowser && !inputFocused && "group-hover/address:pe-7 transition-[padding]", |
| 177 | | )} |
| 178 | | onChange={(event) => setDraft(event.target.value)} |
| 179 | | onFocus={() => { |
| 180 | | setDraft(url); |
| 181 | | setInputFocused(true); |
| 182 | | queueMicrotask(() => inputRef.current?.select()); |
| 183 | | }} |
| 184 | | onBlur={() => { |
| 185 | | setDraft(url); |
| 186 | | setInputFocused(false); |
| 187 | | }} |
| 188 | | onKeyDown={(event) => { |
| 189 | | if (event.key === "Enter") submit(event); |
| 190 | | if (event.key === "Escape") { |
| 191 | | event.preventDefault(); |
| 192 | | setDraft(url); |
| 193 | | inputRef.current?.blur(); |
| 172 | <Tooltip> |
| 173 | <TooltipTrigger |
| 174 | render={ |
| 175 | <InputGroupInput |
| 176 | ref={inputRef} |
| 177 | value={inputFocused ? draft : (displayUrl ?? draft)} |
| 178 | className={cn( |
| 179 | onOpenInBrowser && |
| 180 | !inputFocused && |
| 181 | "group-hover/address:pe-7 transition-[padding]", |
| 182 | )} |
| 183 | onChange={(event) => setDraft(event.target.value)} |
| 184 | onFocus={() => { |
| 185 | setDraft(url); |
| 186 | setInputFocused(true); |
| 187 | queueMicrotask(() => inputRef.current?.select()); |
| 188 | }} |
| 189 | onBlur={() => { |
| 190 | setDraft(url); |
| 191 | setInputFocused(false); |
| 192 | }} |
| 193 | onKeyDown={(event) => { |
| 194 | if (event.key === "Enter") submit(event); |
| 195 | if (event.key === "Escape") { |
| 196 | event.preventDefault(); |
| 197 | setDraft(url); |
| 198 | inputRef.current?.blur(); |
| 199 | } |
| 200 | }} |
| 201 | placeholder="Search or enter URL" |
| 202 | spellCheck={false} |
| 203 | disabled={inputDisabled} |
| 204 | data-preview-url-input |
| 205 | size="sm" |
| 206 | /> |
| 194 | 207 | } |
| 195 | | }} |
| 196 | | placeholder="Search or enter URL" |
| 197 | | spellCheck={false} |
| 198 | | disabled={inputDisabled} |
| 199 | | data-preview-url-input |
| 200 | | title={!inputFocused && displayUrl ? url : undefined} |
| 201 | | size="sm" |
| 202 | | /> |
| 208 | /> |
| 209 | {!inputFocused && displayUrl ? <TooltipPopup>{url}</TooltipPopup> : null} |
| 210 | </Tooltip> |
| 203 | 211 | {onOpenInBrowser && !inputFocused ? ( |
| 204 | 212 | <InputGroupAddon |
| 205 | 213 | align="inline-end" |