Skip to content

Fix: Mobile navigation restructuring and Contribution Graph fixes - #254

Open
eesha264 wants to merge 10 commits into
mainfrom
mobile
Open

Fix: Mobile navigation restructuring and Contribution Graph fixes#254
eesha264 wants to merge 10 commits into
mainfrom
mobile

Conversation

@eesha264

@eesha264 eesha264 commented Aug 5, 2026

Copy link
Copy Markdown
Member

Changes

  • Restructured mobile navigation to separate 'My Workspace' from 'My Projects'
  • Fixed overlapping month labels in the Contribution Graph (e.g. Jan and Dec overlapping when graph starts near month end)
  • Fixed missing project counts and icon mapping for Mobile Workspace header

All tests pass and the production build builds cleanly without errors.

Copilot AI lite review requested due to automatic review settings August 5, 2026 04:26
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zync Ready Ready Preview Aug 6, 2026 4:06am

@github-actions github-actions Bot added area:backend Node.js backend code area:backend-routes Backend API routes area:frontend React/web frontend code area:frontend-components React components area:config Configuration files area:frontend-pages Frontend pages/views area:docs Documentation area:frontend-hooks React hooks area:frontend-api area:frontend-services labels Aug 5, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to improve the mobile experience by restructuring navigation (“My Workspace” vs “My Projects”) and fixing Contribution Graph month-label overlap, alongside several related UI/UX and reliability tweaks across mobile, landing pages, and some backend/frontend utilities.

Changes:

  • Restructures mobile navigation/drawer and introduces additional mobile UI updates (including sign-out flow adjustments).
  • Updates the Contribution Graph calendar rendering to avoid overlapping month labels and constrain mobile weeks.
  • Adds/updates various utilities and documentation; however, the PR also includes multiple duplicate “ 2” files and committed local/build artifacts that should not be in version control.

Reviewed changes

Copilot reviewed 49 out of 69 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
vite.config.ts Adds esbuild JSX automatic mode.
tsconfig.app.json Switches TS JSX mode to react-jsx.
tmp_transcript 2.txt Accidental transcript/log file committed.
src/services/taskSocketService.ts Formatting-only change.
src/services/chatSocketService.ts Formatting-only change.
src/pages/ProjectDetails.tsx Formatting/whitespace-only JSX changes.
src/pages/Login.tsx Install-wall return commented out (causes unused locals unless restored).
src/mobile/pages/LoginMobile.tsx Mobile login header UI adjustment.
src/lib/utils.ts Changes dev/prod socket base URL selection.
src/lib/auth-signout.ts Makes sign-out cleanup best-effort with try/catch + storage clearing.
src/hooks/usePresence.ts Formatting-only change.
src/hooks/use-confirm 2.tsx Duplicate hook file (space + “2” suffix).
src/features/install-wall/hooks/useAppInstallStatus.ts Hard-disables install wall (scope not described in PR).
src/components/views/TaskBoardView 2.tsx Duplicate view file (space + “2” suffix).
src/components/views/SettingsView.tsx Adjusts phone number + country-code UI.
src/components/views/MobileView.tsx Mobile drawer/nav restructure, adds My Projects entry and sign-out button.
src/components/views/mobile/MobileWorkspace.tsx Renames header to “My Workspace”; removes redundant sheet close buttons.
src/components/views/mobile/MobileTasks 2.tsx Duplicate mobile tasks view file (space + “2” suffix).
src/components/views/mobile/MobileSettings.tsx Sign-out flow changed; leaves unused locals unless reconciled.
src/components/views/mobile/MobileSettings 2.tsx Duplicate mobile settings file (space + “2” suffix).
src/components/views/mobile/MobileNewProject 2.tsx Duplicate mobile new-project file (space + “2” suffix).
src/components/views/mobile/MobileMeet 2.tsx Duplicate mobile meet file (space + “2” suffix).
src/components/views/mobile/MobileDashboardView.tsx Improves mobile dashboard layout; adds recent GitHub activity list.
src/components/views/DesktopView.tsx Minor indentation/formatting adjustment.
src/components/views/activity/activityUtils.ts Adds new pure helpers for activity log calculations.
src/components/views/activity/activityTypes.ts Adds shared activity-log types/tokens.
src/components/views/activity/ActivitySummaryCard.tsx Adds new activity summary UI component.
src/components/views/activity/ActivityStatCards.tsx Adds stat card UI component.
src/components/views/activity/ActivityFeed.tsx Adds activity feed UI component.
src/components/views/activity/ActivityCharts.tsx Adds activity charts using Chart.js.
src/components/notes/editor/ShareDialog.tsx Formatting-only JSX empty-expression changes.
src/components/layout/MobileLayout.tsx Reworks mobile layout; install-wall usage commented (unused locals unless restored).
src/components/landing/MobilePreview.tsx Updates landing mobile-preview card styling.
src/components/landing/MobileAppSection.tsx Hides mobile app section on small screens (hidden md:block).
src/components/landing/HeroSection.tsx Mobile hero layout changes; uses MobilePreview on mobile.
src/components/landing/Footer.tsx Adjusts footer spacing for mobile.
src/components/landing/FeaturesSection.tsx Adjusts spacing; hides bento header/grid on mobile.
src/components/landing/CTASection.tsx Adjusts CTA spacing/padding for mobile.
src/components/kibo-ui/contribution-graph.tsx Adds maxWeeks and adjusts month-label logic to reduce overlap.
src/api/calendar.ts Makes holiday fetch resilient (returns [] on errors).
docs/bug-fixes/team-settings-state-fix 2.md New doc (duplicate “2” naming).
docs/bug-fixes/github-app-installation-false-negative 2.md New doc (duplicate “2” naming).
docs/bug-fixes/frontend-ui-fixes 2.md New doc (duplicate “2” naming).
docs/bug-fixes/frontend-session-error-handling 2.md New doc (duplicate “2” naming).
docs/bug-fixes/backend-jest-node-protocol-fix 2.md New doc (duplicate “2” naming).
docs/bug-fixes/backend-github-pagination 2.md New doc (duplicate “2” naming).
docs/architecture/feature-github-integration-enhancements 2.md New doc (duplicate “2” naming).
docs/architecture/feature-fcm-frontend-setup 2.md New doc (duplicate “2” naming).
bugs.md Scratchpad-like notes committed at repo root.
backend/utils/githubInstallation 2.js Duplicate backend module file (space + “2” suffix).
backend/scripts/ops/purge-cloudinary 2.js Duplicate ops script file (space + “2” suffix).
backend/routes/calendarRoutes.js Changes holidays endpoint to return [] instead of error statuses.
app-clients/android-kotlin/.gradle/vcs-1/gc.properties Gradle cache artifact committed.
app-clients/android-kotlin/.gradle/buildOutputCleanup/cache.properties Gradle cache artifact committed.
app-clients/android-kotlin/.gradle/9.2.0/gc.properties Gradle cache artifact committed.
app-clients/android-kotlin/.gradle/8.9/gc.properties Gradle cache artifact committed.
app-clients/android-kotlin/.gradle/8.9/gc 2.properties Gradle cache artifact committed (duplicate “2” naming).
app-clients/android-kotlin/.gradle/8.9/dependencies-accessors/gc.properties Gradle cache artifact committed.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 43 to +47
const { hasCheckedStatus, requiresInstallWall, isIOS, isAndroid } = useAppInstallStatus();

if (hasCheckedStatus && requiresInstallWall) {
return <InstallPromptView isIOS={isIOS} isAndroid={isAndroid} appName="ZYNC" />;
}
// if (hasCheckedStatus && requiresInstallWall) {
// return <InstallPromptView isIOS={isIOS} isAndroid={isAndroid} appName="ZYNC" />;
// }
Comment on lines 20 to +24
const handleSignOut = async () => {
const ok = await confirm({ title: 'Sign Out', description: 'Are you sure you want to sign out?' });
if (!ok) {return;}
await signOutAndClearState(auth);
navigate('/');
try {
await signOutAndClearState(auth);
} catch (err) {
console.error('Sign out error:', err);
Comment thread src/pages/Login.tsx
Comment on lines +376 to +378
// if (hasCheckedStatus && requiresInstallWall) {
// return <InstallPromptView isIOS={isIOS} isAndroid={isAndroid} appName="ZYNC" />;
// }
Comment on lines 140 to +144
// Memoizes the calculation for 'requiresInstallWall' to avoid unnecessary re-evaluations on every render, recalculating only when its dependencies change.
const requiresInstallWall = useMemo(() => {
// Immediately returns false if the status hasn't been checked yet, preventing the install wall from flashing on the screen before the environment is fully verified.
if (!hasCheckedStatus) {
return false;
}
// Returns true if the device is a mobile device AND it is NOT currently running in standalone mode, meaning mobile web browser users are prompted to install.
return isMobileDevice && !isStandalone;
// Declares dependencies so the memoized value recalculates if the check status, device type, or standalone mode state changes.
}, [hasCheckedStatus, isMobileDevice, isStandalone]);
// Temporarily disabled install wall to allow direct mobile web browser access
return false;
}, []);
Comment on lines +239 to +243
return (
<div
key={event.id || Math.random()}
className="flex items-center justify-between p-2.5 rounded-xl bg-card/40 dark:bg-white/5 border border-white/10 text-center gap-2"
>
Comment on lines +1 to +5
import { useState, useEffect, useMemo, useCallback, useRef } from 'react';
import { fetchProjects, Project } from '@/api/projects';
import { Inbox, RefreshCw, ChevronDown, User as UserIcon, Users as UsersIcon } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
Comment on lines +1 to +5
import React, { createContext, useContext, useState, useCallback, ReactNode } from 'react';
import {
AlertDialog,
AlertDialogContent,
AlertDialogHeader,
Comment on lines +1 to +10
/**
* @fileoverview githubInstallation.js
* @module githubInstallation
*
* ============================================================================
* SELF-HEALING GITHUB APP INSTALLATION RESOLVER
* ============================================================================
*
* PROBLEM THIS SOLVES
* ----------------------------------------------------------------------------
Comment on lines +1 to +5
require('dotenv').config({ path: require('path').resolve(__dirname, '../../.env') });
const mongoose = require('mongoose');
const User = require('../../models/User');
const Team = require('../../models/Team');
const { getApps, initializeApp, cert } = require('firebase-admin/app');
Comment thread bugs.md
Comment on lines +1 to +3
analyze the notes section the share feature is not working.
do not edit any chnages just analyze the code and tell why the feature is not working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:backend Node.js backend code area:backend-routes Backend API routes area:config Configuration files area:docs Documentation area:frontend React/web frontend code area:frontend-api area:frontend-components React components area:frontend-hooks React hooks area:frontend-pages Frontend pages/views area:frontend-services

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants