diff --git a/package-lock.json b/package-lock.json
index 6861736..e5a9491 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -798,18 +798,6 @@
"tslib": "^2.4.0"
}
},
- "node_modules/@types/node": {
- "version": "25.8.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.8.0.tgz",
- "integrity": "sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "undici-types": ">=7.24.0 <7.24.7"
- }
- },
"node_modules/@types/react": {
"version": "19.2.14",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
@@ -4647,9 +4635,9 @@
}
},
"node_modules/tmp": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
- "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz",
+ "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==",
"license": "MIT",
"engines": {
"node": ">=14.14"
@@ -4719,15 +4707,6 @@
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"license": "MIT"
},
- "node_modules/undici-types": {
- "version": "7.24.6",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
- "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true
- },
"node_modules/unicode-properties": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz",
diff --git a/src/components/FederatedRoomCard.jsx b/src/components/FederatedRoomCard.jsx
index 61ab7b1..d63bcec 100644
--- a/src/components/FederatedRoomCard.jsx
+++ b/src/components/FederatedRoomCard.jsx
@@ -30,8 +30,21 @@ export default function FederatedRoomCard({ room, onRemove }) {
const recordingOn = room.allow_recording === 1 || room.allow_recording === true;
+ const openRoom = () => navigate(`/federation/rooms/${room.id}`);
+
return (
-
navigate(`/federation/rooms/${room.id}`)}>
+
{
+ if (e.target !== e.currentTarget) return;
+ if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); openRoom(); }
+ }}
+ className={`card-hover group p-5 cursor-pointer focus:outline-hidden focus:ring-2 focus:ring-th-ring focus:ring-offset-2 ${isDeleted ? 'opacity-60' : ''}`}
+ style={{ '--tw-ring-offset-color': 'var(--bg-primary)' }}
+ >
@@ -107,6 +120,7 @@ export default function FederatedRoomCard({ room, onRemove }) {