diff --git a/src/components/GroupSwitch.tsx b/src/components/GroupSwitch.tsx
index 9446785..0298634 100644
--- a/src/components/GroupSwitch.tsx
+++ b/src/components/GroupSwitch.tsx
@@ -37,6 +37,13 @@ export default function GroupSwitch({
}
}, [])
+ useEffect(() => {
+ const savedGroup = sessionStorage.getItem("selectedGroup")
+ if (savedGroup && tabs.includes(savedGroup)) {
+ setCurrentTab(savedGroup)
+ }
+ }, [tabs, setCurrentTab])
+
useEffect(() => {
const currentTagRef = tagRefs.current[tabs.indexOf(currentTab)]
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index c77f5fe..6a9f6f3 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -60,7 +60,13 @@ function Header() {
return (
- navigate("/")} className="cursor-pointer flex items-center sm:text-base text-sm font-medium">
+ {
+ sessionStorage.removeItem("selectedGroup")
+ navigate("/")
+ }}
+ className="cursor-pointer flex items-center sm:text-base text-sm font-medium"
+ >
![]()
("0")
const [showMap, setShowMap] = useState
("0")
const [inline, setInline] = useState("0")
+ const containerRef = useRef(null)
const [settingsOpen, setSettingsOpen] = useState(false)
const [currentGroup, setCurrentGroup] = useState("All")
@@ -39,6 +40,19 @@ export default function Servers() {
// @ts-expect-error CustomBackgroundImage is a global variable
(window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined
+ const restoreScrollPosition = () => {
+ const savedPosition = sessionStorage.getItem("scrollPosition")
+ if (savedPosition && containerRef.current) {
+ containerRef.current.scrollTop = Number(savedPosition)
+ }
+ }
+
+ const handleTagChange = (newGroup: string) => {
+ setCurrentGroup(newGroup)
+ sessionStorage.setItem("selectedGroup", newGroup)
+ sessionStorage.setItem("scrollPosition", String(containerRef.current?.scrollTop || 0))
+ }
+
useEffect(() => {
const showServicesState = localStorage.getItem("showServices")
if (showServicesState !== null) {
@@ -53,6 +67,13 @@ export default function Servers() {
}
}, [])
+ useEffect(() => {
+ const savedGroup = sessionStorage.getItem("selectedGroup") || "All"
+ setCurrentGroup(savedGroup)
+
+ restoreScrollPosition()
+ }, [])
+
const groupTabs = ["All", ...(groupData?.data?.map((item: ServerGroup) => item.group.name) || [])]
if (!connected && !lastMessage) {
@@ -233,7 +254,7 @@ export default function Servers() {
>
-
+
@@ -306,14 +327,14 @@ export default function Servers() {
{showMap === "1" && }
{showServices === "1" && }
{inline === "1" && (
-
+
{filteredServers.map((serverInfo) => (
))}
)}
{inline === "0" && (
-
+
{filteredServers.map((serverInfo) => (
))}