diff --git a/frontend/src/components/Navigation/Navbar/Navbar.tsx b/frontend/src/components/Navigation/Navbar/Navbar.tsx
index d32d0777..e399b24f 100644
--- a/frontend/src/components/Navigation/Navbar/Navbar.tsx
+++ b/frontend/src/components/Navigation/Navbar/Navbar.tsx
@@ -81,7 +81,13 @@ export function Navbar() {
- Welcome {userName}
+ Welcome{' '}
+
+ {userName?.split(' ')[0] ?? ''}
+
![]()
= ({
const isEditing = useSelector(
(state: RootState) => state.onboarding.isEditing,
);
+ const [longWordError, setLongWordError] = useState(false);
useEffect(() => {
if (
@@ -56,6 +57,13 @@ export const AvatarSelectionStep: React.FC
= ({
};
const handleNameChange = (value: string) => {
+ const words = value.split(' ');
+ const hasLongWord = words.some((word) => word.length > 30);
+ if (hasLongWord) {
+ setLongWordError(true);
+ return;
+ }
+ setLongWordError(false);
setLocalName(value);
};
@@ -115,6 +123,11 @@ export const AvatarSelectionStep: React.FC = ({
onChange={(e) => handleNameChange(e.target.value)}
className="h-8 text-sm placeholder:text-sm"
/>
+ {longWordError && (
+
+ A single word in your name cannot exceed 30 characters.
+
+ )}
{/* Avatar Grid */}
@@ -152,7 +165,7 @@ export const AvatarSelectionStep: React.FC = ({
diff --git a/frontend/src/pages/SettingsPage/components/AccountSettingsCard.tsx b/frontend/src/pages/SettingsPage/components/AccountSettingsCard.tsx
index 65070f8a..0a2ffcfe 100644
--- a/frontend/src/pages/SettingsPage/components/AccountSettingsCard.tsx
+++ b/frontend/src/pages/SettingsPage/components/AccountSettingsCard.tsx
@@ -19,6 +19,7 @@ const AccountSettingsCard: React.FC = () => {
return avatars.includes(stored) ? stored : '';
});
const [nameError, setNameError] = useState(false);
+ const [longWordError, setLongWordError] = useState(false);
// The redundant useEffect has been removed.
@@ -27,10 +28,15 @@ const AccountSettingsCard: React.FC = () => {
};
const handleNameChange = (value: string) => {
- setLocalName(value);
- if (nameError) {
- setNameError(false);
+ const words = value.split(' ');
+ const hasLongWord = words.some((word) => word.length > 30);
+ if (hasLongWord) {
+ setLongWordError(true);
+ return;
}
+ setLongWordError(false);
+ setLocalName(value);
+ if (nameError) setNameError(false);
};
const handleSave = () => {
@@ -78,6 +84,11 @@ const AccountSettingsCard: React.FC = () => {
: ''
}`}
/>
+ {longWordError && (
+
+ A single word in your name cannot exceed 30 characters.
+
+ )}
{/* Avatar Section */}
@@ -115,7 +126,7 @@ const AccountSettingsCard: React.FC = () => {