mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-13 23:14:53 +09:00
Focus the mod search inputs when they open
The "Add mods" card on the mod pack view mounts when shown, so autoFocus is enough there. The Search Mod Portal modal stays mounted after the first open, so it focuses the name input from afterOpenChange instead. Fixes #1194 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bd9c4a5fea
commit
3868efcead
2 files changed
+7
-3
No files matched your search
@@ -182,6 +182,7 @@ function SearchModsTable(props: SearchModsTableProps) {
|
||||
|
||||
return <>
|
||||
<Input
|
||||
autoFocus
|
||||
placeholder="Search Mods"
|
||||
style={{ marginBottom: 8 }}
|
||||
onChange={(event) => {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import React, { Fragment, useState, useContext, useEffect, useMemo } from "react";
|
||||
import React, { Fragment, useState, useContext, useEffect, useMemo, useRef } from "react";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import {
|
||||
Button, Form, Input, Modal, Popconfirm, Space, Table, Typography, Upload, Alert, Select, Tooltip, notification,
|
||||
Button, Form, Input, InputRef, Modal, Popconfirm, Space, Table, Typography, Upload, Alert, Select, Tooltip,
|
||||
notification,
|
||||
} from "antd";
|
||||
import {
|
||||
ImportOutlined, PlusOutlined, SearchOutlined, DownloadOutlined,
|
||||
@@ -147,6 +148,7 @@ function SearchModsButton() {
|
||||
const account = useAccount();
|
||||
const [open, setOpen] = useState(false);
|
||||
const [form] = Form.useForm();
|
||||
const nameInputRef = useRef<InputRef>(null);
|
||||
const [searchText, setSearchText] = useState("");
|
||||
const [factorioVersion, setFactorioVersion] = useState<lib.MajorMinorVersion>("2.0");
|
||||
|
||||
@@ -333,6 +335,7 @@ function SearchModsButton() {
|
||||
title="Search Mod Portal"
|
||||
open={open}
|
||||
onCancel={() => { setOpen(false); }}
|
||||
afterOpenChange={visible => { if (visible) { nameInputRef.current?.focus(); } }}
|
||||
width={1000}
|
||||
footer={[
|
||||
<Button key="close" onClick={() => { setOpen(false); }}>
|
||||
@@ -349,7 +352,7 @@ function SearchModsButton() {
|
||||
initialValues={{ factorioVersion: factorioVersion, name: searchText }}
|
||||
>
|
||||
<Form.Item name="name" label="Filter by Name or Title">
|
||||
<Input placeholder="Start typing to filter..." />
|
||||
<Input ref={nameInputRef} placeholder="Start typing to filter..." />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="factorioVersion"
|
||||
|
||||
Reference in new issue
Block a user