Skip to content

Fix display name with @ symbol causing user to disappear from members list #35

@amoscicki

Description

@amoscicki

Summary

When a user sets their display name to include an @ symbol (e.g., @aromatt), their profile disappears from the members list.

Steps to Reproduce

  1. Go to profile edit page (/profile/edit)
  2. Set display name to something containing @ (e.g., @aromatt)
  3. Save changes
  4. Navigate to the members page (/members)
  5. Search for or scroll to find the user

Current Behavior

User profile is not visible in the members list when display name contains @ symbol.

Expected Behavior

User profile should appear in the members list regardless of special characters in the display name.

Relevant Code

Members Page Query - src/routes/members.tsx (lines 45-50):

const members = await getPublicMembersFn()

Server Function - src/fn/profiles.ts (lines 147-153):
Calls getPublicMembers()

Database Query - src/data-access/profiles.ts (lines 128-144):

SELECT id, displayName, image, bio, flair, updatedAt
FROM profiles
INNER JOIN users ON profiles.userId = users.id
WHERE profiles.isPublicProfile = true
ORDER BY profiles.updatedAt DESC

Display Name Validation - src/routes/profile/edit.tsx (lines 57-68):

  • Only validates: required, 1-100 chars
  • No special character restrictions

Possible Causes

  1. PostgreSQL query might interpret @ as a special character in some context
  2. The isPublicProfile flag might be getting reset when updating with special characters
  3. Frontend rendering issue when parsing display names
  4. Drizzle ORM query building issue with special characters

Affected Areas

  • Routes: /src/routes/members.tsx (user list rendering)
  • Routes: /src/routes/profile/edit.tsx (profile update form)
  • Data Access: /src/data-access/profiles.ts (getPublicMembers query)
  • Server Functions: /src/fn/profiles.ts (getPublicMembersFn)

Acceptance Criteria

  • Users with @ in display name appear in members list
  • Other special characters (#, !, &, %, etc.) don't cause similar issues
  • Display name is properly escaped/handled in database queries
  • Profile visibility (isPublicProfile) is not affected by display name content

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions