Skip to content

New desktop layout#1395

Merged
ragnep merged 141 commits intomainfrom
new-desktop-layout
Oct 20, 2025
Merged

New desktop layout#1395
ragnep merged 141 commits intomainfrom
new-desktop-layout

Conversation

@ragnep
Copy link
Copy Markdown
Contributor

@ragnep ragnep commented Sep 10, 2025

Summary by CodeRabbit

  • New Features

    • Discover page, dedicated create pages for Waves and Direct Messages, Messages and Notifications pages, and persistent home tabs (My Stream / Latest).
  • Navigation & Routing

    • Canonical routes standardized ("/waves", "/messages", "/notifications", root feed tab) with consistent app vs web navigation.
  • UI/UX Improvements

    • Redesigned left sidebar (search, filters, messages view), refreshed header, new layouts for web/mobile, improved modals and drop/right-sidebar behavior, Connect Wallet prompt.
  • Bug Fixes

    • Better loading states for empty feeds, layout stability and title/header fixes across breakpoints.

ragnep added 25 commits August 27, 2025 11:47
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
@ragnep
Copy link
Copy Markdown
Contributor Author

ragnep commented Sep 10, 2025

@claude review

Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
@ragnep
Copy link
Copy Markdown
Contributor Author

ragnep commented Sep 11, 2025

@claude review

Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (5)
components/brain/my-stream/tabs/MyStreamWaveTabsMeme.tsx (1)

18-21: Replace Heroicons with FontAwesome per coding guidelines.

These Heroicons imports violate the project's icon standard. You need FontAwesome equivalents for ArrowLeftIcon (line 119) and ChevronDoubleLeftIcon (lines 148–155).

Apply this diff to switch to FontAwesome:

-import {
-  ChevronDoubleLeftIcon,
-  ArrowLeftIcon,
-} from "@heroicons/react/24/outline";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faArrowLeft, faAnglesLeft } from "@fortawesome/free-solid-svg-icons";

Then update the usages:

-                <ArrowLeftIcon className="tw-w-6 tw-h-6 tw-flex-shrink-0" />
+                <FontAwesomeIcon icon={faArrowLeft} className="tw-w-6 tw-h-6 tw-flex-shrink-0" />
-              <ChevronDoubleLeftIcon
-                strokeWidth={2}
-                className={`tw-h-4 tw-w-4 tw-flex-shrink-0 tw-text-iron-200 tw-transition tw-duration-300 ${
+              <FontAwesomeIcon
+                icon={faAnglesLeft}
+                className={`tw-h-4 tw-w-4 tw-flex-shrink-0 tw-text-iron-200 tw-transition tw-duration-300 ${
                  isRightSidebarOpen
                    ? "tw-rotate-180 desktop-hover:group-hover:tw-translate-x-0.5"
                    : "tw-rotate-0 desktop-hover:group-hover:-tw-translate-x-0.5"
                }`}
              />

As per coding guidelines.

components/brain/my-stream/tabs/MyStreamWaveTabsDefault.tsx (2)

6-9: Replace Heroicons with FontAwesome per project guidelines.

The coding guidelines require FontAwesome for icons in TSX files. Replace these Heroicon imports with their FontAwesome equivalents.

As per coding guidelines.


45-51: Fix concatenated Tailwind classes.

Line 47 has tw-items-centertw-h-full with no space, so neither tw-items-center nor tw-h-full will be applied.

Apply this diff:

-              className="tw-flex tw-items-centertw-h-full tw-px-2.5 -tw-ml-2.5 tw-mr-1.5 tw-bg-transparent tw-border-0 tw-text-iron-300 hover:tw-text-iron-50 tw-transition-colors tw-p-0"
+              className="tw-flex tw-items-center tw-h-full tw-px-2.5 -tw-ml-2.5 tw-mr-1.5 tw-bg-transparent tw-border-0 tw-text-iron-300 hover:tw-text-iron-50 tw-transition-colors tw-p-0"
components/brain/left-sidebar/web/WebDirectMessagesList.tsx (2)

37-49: Use useDeviceInfo().hasTouchScreen instead of manual touch detection.

Prevents SSR/CSR mismatches and follows project conventions. Replace the window/navigator checks and update the tooltip guard.

+ import { useDeviceInfo } from "@/hooks/useDeviceInfo";
@@
-  const globalScope = globalThis as typeof globalThis & {
-    window?: Window;
-    navigator?: Navigator;
-  };
-  const browserWindow = globalScope.window;
-  const browserNavigator = globalScope.navigator;
-
-  const isTouchDevice =
-    !!browserWindow &&
-    ("ontouchstart" in browserWindow ||
-      (browserNavigator?.maxTouchPoints ?? 0) > 0 ||
-      browserWindow.matchMedia?.("(pointer: coarse)")?.matches);
+  const { hasTouchScreen } = useDeviceInfo();
@@
-      {!isTouchDevice && shouldRenderCreateDirectMessage && (
+      {!hasTouchScreen && shouldRenderCreateDirectMessage && (

As per coding guidelines.

Also applies to: 204-204


210-221: ReactTooltip v5: move border into style; prop is not supported.

Border as a prop is ignored; keep styles in the style object.

           style={{
             padding: "6px 10px",
             background: "#37373E",
             color: "white",
             fontSize: "12px",
             fontWeight: 500,
             borderRadius: "6px",
             boxShadow: "0 4px 12px rgba(0, 0, 0, 0.3)",
             zIndex: 10000,
+            border: "1px solid #4C4C55",
           }}
-          border="1px solid #4C4C55"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dcb0a96 and 421ba96.

📒 Files selected for processing (3)
  • components/brain/left-sidebar/web/WebDirectMessagesList.tsx (1 hunks)
  • components/brain/my-stream/tabs/MyStreamWaveTabsDefault.tsx (1 hunks)
  • components/brain/my-stream/tabs/MyStreamWaveTabsMeme.tsx (2 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursorrules)

**/*.{ts,tsx}: Do not include any comments in the code
Use react-query for data fetching
Always add readonly before props

**/*.{ts,tsx}: Use TypeScript for source code and follow existing code style and naming conventions
Adhere to clean code standards as measured by SonarQube

Files:

  • components/brain/my-stream/tabs/MyStreamWaveTabsDefault.tsx
  • components/brain/my-stream/tabs/MyStreamWaveTabsMeme.tsx
  • components/brain/left-sidebar/web/WebDirectMessagesList.tsx
**/*.tsx

📄 CodeRabbit inference engine (.cursorrules)

**/*.tsx: Use FontAwesome for icons
Use TailwindCSS for styling

Implement React components as functional components using hooks (no class components)

Files:

  • components/brain/my-stream/tabs/MyStreamWaveTabsDefault.tsx
  • components/brain/my-stream/tabs/MyStreamWaveTabsMeme.tsx
  • components/brain/left-sidebar/web/WebDirectMessagesList.tsx
🧠 Learnings (2)
📚 Learning: 2025-09-28T12:29:11.651Z
Learnt from: CR
PR: 6529-Collections/6529seize-frontend#0
File: .cursorrules:0-0
Timestamp: 2025-09-28T12:29:11.651Z
Learning: Applies to **/*.tsx : Use FontAwesome for icons

Applied to files:

  • components/brain/my-stream/tabs/MyStreamWaveTabsDefault.tsx
  • components/brain/my-stream/tabs/MyStreamWaveTabsMeme.tsx
📚 Learning: 2025-09-28T12:29:11.651Z
Learnt from: CR
PR: 6529-Collections/6529seize-frontend#0
File: .cursorrules:0-0
Timestamp: 2025-09-28T12:29:11.651Z
Learning: Applies to **/*.{ts,tsx} : Do not include any comments in the code

Applied to files:

  • components/brain/my-stream/tabs/MyStreamWaveTabsDefault.tsx
🧬 Code graph analysis (3)
components/brain/my-stream/tabs/MyStreamWaveTabsDefault.tsx (3)
generated/models/ApiWave.ts (1)
  • ApiWave (27-177)
hooks/useSidebarState.tsx (1)
  • useSidebarState (52-58)
components/waves/WavePicture.tsx (1)
  • WavePicture (62-113)
components/brain/my-stream/tabs/MyStreamWaveTabsMeme.tsx (7)
hooks/useSidebarState.tsx (1)
  • useSidebarState (52-58)
hooks/useWave.ts (1)
  • useWave (120-411)
hooks/waves/useDecisionPoints.ts (1)
  • useDecisionPoints (29-72)
helpers/time.ts (1)
  • Time (4-445)
helpers/waves/time.utils.ts (2)
  • TimeLeft (8-13)
  • calculateTimeLeft (21-40)
components/waves/WavePicture.tsx (1)
  • WavePicture (62-113)
components/waves/leaderboard/time/CompactTimeCountdown.tsx (1)
  • CompactTimeCountdown (14-33)
components/brain/left-sidebar/web/WebDirectMessagesList.tsx (11)
components/auth/SeizeConnectContext.tsx (1)
  • useSeizeConnectContext (618-626)
components/auth/Auth.tsx (1)
  • AuthContext (83-93)
hooks/useCreateModalState.ts (1)
  • useCreateModalState (20-106)
components/brain/left-sidebar/web/WebUnifiedWavesListWaves.tsx (1)
  • WebUnifiedWavesListWavesHandle (44-46)
contexts/wave/MyStreamContext.tsx (1)
  • useMyStream (242-248)
hooks/useInfiniteScroll.ts (1)
  • useInfiniteScroll (3-61)
components/brain/left-sidebar/waves/UnifiedWavesListLoader.tsx (1)
  • UnifiedWavesListLoader (9-30)
components/header/user/HeaderUserConnect.tsx (1)
  • HeaderUserConnect (3-15)
components/user/utils/set-up-profile/UserSetUpProfileCta.tsx (1)
  • UserSetUpProfileCta (8-29)
components/utils/button/PrimaryButton.tsx (1)
  • PrimaryButton (3-32)
components/waves/create-dm/CreateDirectMessageModal.tsx (1)
  • CreateDirectMessageModal (16-73)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (4)
components/brain/my-stream/tabs/MyStreamWaveTabsMeme.tsx (3)

32-106: Well-structured component logic with proper type safety.

The hook composition, decision filtering (lines 53–61), countdown state management (lines 75–92), and URL handling (lines 98–105) are all correctly implemented. The type annotation at lines 54–55 properly replaces the previous as any cast, and the interval cleanup prevents memory leaks.


110-158: Responsive header with proper accessibility.

The mobile-aware layout (lines 113–121), wave picture integration (lines 122–130), and sidebar toggle (lines 142–157) are well implemented. The tw-backdrop-blur-sm class at line 145 is now correct, and the desktop-hover:group-hover: pattern (lines 152–153) properly applies hover states. Good use of aria-label attributes for accessibility.


160-179: Clean tabs and countdown integration.

The conditional rendering of CompactTimeCountdown (lines 166–170) for memes/rank waves is appropriate, and the modal integration (lines 173–177) follows the expected pattern. The tab layout with the countdown display provides good UX for time-sensitive waves.

components/brain/left-sidebar/web/WebDirectMessagesList.tsx (1)

23-26: Props interface looks good.

Readonly props and typing are correct.

Comment thread components/brain/left-sidebar/web/WebDirectMessagesList.tsx
Comment thread components/brain/left-sidebar/web/WebDirectMessagesList.tsx
@ragnep ragnep merged commit 3fc1537 into main Oct 20, 2025
11 checks passed
@ragnep ragnep deleted the new-desktop-layout branch October 20, 2025 12:39
@coderabbitai coderabbitai Bot mentioned this pull request Oct 20, 2025
@ragnep ragnep restored the new-desktop-layout branch October 21, 2025 06:23
@coderabbitai coderabbitai Bot mentioned this pull request Dec 11, 2025
@coderabbitai coderabbitai Bot mentioned this pull request Dec 19, 2025
@coderabbitai coderabbitai Bot mentioned this pull request Dec 30, 2025
@coderabbitai coderabbitai Bot mentioned this pull request Jan 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants