diff --git a/external/components b/external/components
index 55709411..ab0fc1af 160000
--- a/external/components
+++ b/external/components
@@ -1 +1 @@
-Subproject commit 557094115d17a363eb6fb8f27c6e697e049ce623
+Subproject commit ab0fc1af739f877c8f416dcd7e47d25aacbb7eea
diff --git a/external/lang b/external/lang
index 14d51d68..843cece2 160000
--- a/external/lang
+++ b/external/lang
@@ -1 +1 @@
-Subproject commit 14d51d68a579ee3796837cd16deda4281f83c923
+Subproject commit 843cece2854185651e17765bcb78109d22eba769
diff --git a/external/revolt.js b/external/revolt.js
index 044b1b91..ab064f41 160000
--- a/external/revolt.js
+++ b/external/revolt.js
@@ -1 +1 @@
-Subproject commit 044b1b91ee583bfb89fff140ecda29a32f6535aa
+Subproject commit ab064f41a4154acee7c1751ea5b59d9ee4345a0b
diff --git a/src/components/common/user/UserIcon.tsx b/src/components/common/user/UserIcon.tsx
index 3c96b9a6..fca6cde3 100644
--- a/src/components/common/user/UserIcon.tsx
+++ b/src/components/common/user/UserIcon.tsx
@@ -25,6 +25,8 @@ export function useStatusColour(user?: User) {
return user?.online && user?.status?.presence !== "Invisible"
? user?.status?.presence === "Idle"
? theme.getVariable("status-away")
+ : user?.status?.presence === "Focus"
+ ? theme.getVariable("status-focus")
: user?.status?.presence === "Busy"
? theme.getVariable("status-busy")
: theme.getVariable("status-online")
diff --git a/src/components/common/user/UserStatus.tsx b/src/components/common/user/UserStatus.tsx
index 36e866c4..137cf630 100644
--- a/src/components/common/user/UserStatus.tsx
+++ b/src/components/common/user/UserStatus.tsx
@@ -32,6 +32,10 @@ export default observer(({ user, tooltip }: Props) => {
return ;
}
+ if (user.status?.presence === "Focus") {
+ return ;
+ }
+
if (user.status?.presence === "Invisible") {
return ;
}
diff --git a/src/context/Theme.tsx b/src/context/Theme.tsx
index 9d8ec18b..f079c9e9 100644
--- a/src/context/Theme.tsx
+++ b/src/context/Theme.tsx
@@ -31,6 +31,7 @@ export type Variables =
| "tooltip"
| "status-online"
| "status-away"
+ | "status-focus"
| "status-busy"
| "status-streaming"
| "status-invisible";
@@ -283,6 +284,7 @@ export const PRESETS: Record = {
"tertiary-foreground": "#3a3a3a",
"status-online": "#3ABF7E",
"status-away": "#F39F00",
+ "status-focus": "#4799F0",
"status-busy": "#F84848",
"status-streaming": "#977EFF",
"status-invisible": "#A5A5A5",
@@ -310,6 +312,7 @@ export const PRESETS: Record = {
"tertiary-foreground": "#848484",
"status-online": "#3ABF7E",
"status-away": "#F39F00",
+ "status-focus": "#4799F0",
"status-busy": "#F84848",
"status-streaming": "#977EFF",
"status-invisible": "#A5A5A5",
@@ -336,9 +339,8 @@ export const generateVariables = (theme: Theme) => {
if (colour) {
const [r, g, b] = colour;
return `--${key}: ${theme[key]}; --${key}-rgb: ${r}, ${g}, ${b};`;
- }
- return `--${key}: ${theme[key]};`;
-
+ }
+ return `--${key}: ${theme[key]};`;
});
};
diff --git a/src/lib/ContextMenus.tsx b/src/lib/ContextMenus.tsx
index 6aeb7c41..3298a4aa 100644
--- a/src/lib/ContextMenus.tsx
+++ b/src/lib/ContextMenus.tsx
@@ -1110,6 +1110,15 @@ export default function ContextMenus() {
+