-
Notifications
You must be signed in to change notification settings - Fork 74
Feature/complete application skeleton system #3921
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/complete application skeleton system #3921
Conversation
…on components - Replaced `SettingsPersonalSkeleton` with `SettingsPageSkeleton` for a more comprehensive loading experience in settings. - Introduced `SettingsLoading` component to provide a consistent loading state for settings pages. - Updated `SettingsLayout` to utilize the new skeleton components, improving user experience during data fetching. - Implemented lazy loading for various team settings components, optimizing performance and responsiveness during loading states.
…on components - Updated `SettingsLayout` to utilize `LazyLeftSideSettingMenu` for improved performance during loading. - Refactored `SettingsPageSkeleton` to integrate `TitleBlockSkeleton` and enhance the loading experience. - Introduced `LoadingApp` component for consistent loading states across the application. - Implemented lazy loading for various settings components, optimizing user experience during data fetching. - Improved overall structure and responsiveness of settings-related components.
- Introduced `TimeActivityPageSkeleton` for a complete loading state representation of the Time and Activity page, including headers, statistics cards, and data tables. - Created `TimeActivityHeaderSkeleton`, `CardTimeAndActivitySkeleton`, `ActivityTableSkeleton`, and `TimeActivityTableSkeleton` for modular loading states of individual components. - Implemented lazy loading for the main components of the Time and Activity page to enhance performance during data fetching. - Updated `page-component.tsx` to utilize the new skeleton components, providing a unified loading experience while data is being loaded.
- Introduced `TimesheetPageSkeleton` component to provide a complete loading state for the Timesheet page, integrating seamlessly with the `MainLayout`. - Updated `TimeSheetPageContent` to utilize the new skeleton component, enhancing user experience during data fetching by displaying a unified loading interface while data is being loaded.
…ates - Introduced `CalendarPageSkeleton`, `SetupFullCalendarSkeleton`, `SetupTimeSheetSkeleton`, and `AddManualTimeModalSkeleton` to provide a comprehensive loading experience for the Calendar page. - Integrated dynamic imports with Suspense for main components, enhancing user experience during data fetching by displaying unified loading interfaces. - Updated `CalendarPage` to utilize the new skeleton components, ensuring a seamless loading state representation while data is being loaded.
- Introduced various skeleton components including `ReportsPageSkeleton`, `TimeReportTableSkeleton`, `TimeReportTableByMemberSkeleton`, and others to enhance loading states for the Weekly Limit report page. - Integrated dynamic imports for main components, improving user experience during data fetching by displaying loading interfaces. - Updated `WeeklyLimitReport` to utilize the new skeleton components, ensuring a seamless loading experience while data is being loaded.
…ard pages - Introduced `AppUrlsDashboardPageSkeleton` and `TeamDashboardPageSkeleton` to provide comprehensive loading states for their respective pages. - Created individual skeleton components such as `ProductivityHeaderSkeleton`, `ProductivityStatsSkeleton`, and `TeamStatsGridSkeleton` for modular loading representations. - Updated relevant pages to utilize the new skeleton components, enhancing user experience during data fetching by displaying unified loading interfaces. - Implemented lazy loading for main components to optimize performance while data is being loaded.
- Changed label display to a span with adjusted text size for better visual consistency. - Updated button text size for ascending and descending sort options to enhance clarity.
… page - Introduced various skeleton components for the profile page, including `ProfilePageSkeleton`, `UserProfileDetailSkeleton`, and `UserProfileTaskSkeleton`, to enhance loading states and user experience during data fetching. - Implemented dynamic imports for heavy components such as user profile details, tasks, and filters, optimizing performance while data is being loaded. - Updated the profile page to utilize the new skeleton components, ensuring a seamless loading experience and improved visual feedback for users.
…tor imports - Introduced `AllPlans`, `EmptyPlans`, and `PlanHeader` components to improve the daily plan feature, providing better structure and functionality. - Added `ActivityCalendarSkeleton` for improved loading states in the activity calendar. - Refactored existing components to utilize the new skeletons, ensuring a consistent loading experience across the daily plan section. - Updated imports to streamline component usage and enhance code organization. - Removed the obsolete `ScreenCalendar` component to simplify the codebase.
…g and skeletons - Refactored profile page to utilize new lazy-loaded components for improved performance, including `LazyUserProfileDetail`, `LazyUserProfileTask`, and others. - Updated the dashboard's `TaskTimerSection` to replace the direct `Timer` component with `LazyTimer`, enhancing loading efficiency. - Consolidated skeleton components for various profile and task sections, ensuring a consistent loading experience across the application. - Improved code organization by centralizing dynamic imports in `optimized-tasks-components` for better maintainability.
- Removed unused imports from various components, including from profile and from dashboard. - Streamlined import statements in settings and daily plan components for better organization. - Enhanced code maintainability by eliminating obsolete components and ensuring only necessary imports are retained.
…ion and improved structure - Introduced memoization for various components in the profile and user task sections to optimize rendering performance and reduce unnecessary re-renders. - Refactored the profile page to utilize new memoized components such as `MemberNotFoundMessage`, `BreadcrumbSection`, `UserProfileSection`, and `ActivityFilterTabs`, improving code organization and readability. - Updated the `UserProfileTask` component to include memoized displays for current time and active tasks, enhancing performance and user experience. - Streamlined conditional rendering logic with memoized values to improve clarity and maintainability of the codebase.
- Introduced `KanbanPageSkeleton` component to provide a complete loading state for the Kanban page, ensuring a consistent and visually appealing loading experience. - Updated the Kanban page to utilize the new skeleton, replacing previous loading indicators with a unified structure that integrates seamlessly with the `MainLayout`. - Enhanced the loading experience by displaying a comprehensive skeleton layout that matches the actual page structure, improving user feedback during data fetching.
…memoized components - Removed unnecessary memoized components and conditional rendering logic from the `UserProfileTask` component to streamline its structure and improve readability. - Consolidated the display of current time and active tasks directly within the main render logic, enhancing performance and reducing complexity. - Updated the rendering logic for task lists and headers to ensure clarity and maintainability of the codebase.
…experience - Introduced `AllTeamsPageSkeleton`, `TeamMemberProfilePageSkeleton`, and `TeamTasksPageSkeleton` to provide comprehensive loading states for their respective pages, ensuring a consistent and visually appealing loading experience. - Updated the `AllTeamsPage`, `Team`, and `TeamTask` components to utilize the new skeletons, replacing previous loading indicators with a unified structure that integrates seamlessly with the `MainLayout`. - Enhanced user feedback during data fetching by displaying detailed skeleton layouts that match the actual page structures, improving overall user experience.
… in loop - Updated the loop in `SegmentedProgressBar` to eliminate the unused index variable, improving code clarity and maintainability. - This change enhances the readability of the component while maintaining its functionality.
WalkthroughThis change introduces comprehensive lazy loading and pixel-perfect skeleton loading states across high-impact components and pages in the Ever Teams web application. It modularizes skeleton components, applies dynamic imports with Suspense and fallbacks, and unifies loading UX for dashboards, profiles, settings, kanban, timesheet, and daily plan features, improving performance and code organization. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Page
participant LazyComponent
participant Skeleton
User->>Page: Navigates to feature page (e.g., Profile, Dashboard)
Page->>Page: Run hooks, fetch data
alt Data or component loading
Page->>Skeleton: Render skeleton fallback
else Data and component ready
Page->>LazyComponent: Render dynamically imported component
LazyComponent-->>Page: Display loaded content
end
Assessment against linked issues
Assessment against linked issues: Out-of-scope changes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
yarn install v1.22.22 ✨ Finishing Touches
🧪 Generate Unit Tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Please review these files and clean up the unused code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
Major enhancement implementing a comprehensive loading skeleton system across the Ever Teams application for improved perceived performance and user experience.
- Created centralized skeleton system in
apps/web/core/components/common/skeleton/
with consistent styling (bg-[#F0F0F0] dark:bg-[#353741] animate-pulse
) - Implemented Next.js dynamic imports with Suspense boundaries in
apps/web/core/components/optimized-components.tsx
for optimized lazy loading - Added new page-level skeletons in
apps/web/core/components/layouts/skeletons/
matching exact layouts of AllTeams, TeamTasks, Kanban pages - Enhanced user authentication flow with new
userLoading
state inapps/web/core/types/interfaces/user/user.ts
for consistent loading handling - Restructured daily plan components with proper skeleton integration and component organization in
apps/web/core/components/daily-plan/
67 files reviewed, 49 comments
Edit PR Review Bot Settings | Greptile
apps/web/core/components/pages/timesheet/timesheet-page-content.tsx
Outdated
Show resolved
Hide resolved
apps/web/core/components/common/skeleton/time-activity-page-skeleton.tsx
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 14
🧹 Nitpick comments (8)
apps/web/core/components/tasks/task-block-card.tsx (1)
81-81
: Prefer one styling system for border coloursMixing a hard-coded hex (
border-[#F7F7F8]
) with a Tailwind token (dark:border-gray-700
) can lead to maintenance drift. Consider switching the light-mode value to the nearest Tailwind shade for consistency with the rest of the codebase.- className="flex flex-col my-2.5 rounded-2xl bg-white dark:bg-dark--theme-light p-4 relative border border-[#F7F7F8] dark:border-gray-700" + className="flex flex-col my-2.5 rounded-2xl bg-white dark:bg-dark--theme-light p-4 relative border border-gray-100 dark:border-gray-700"This keeps both themes on the same token system and makes future palette tweaks easier.
apps/web/core/components/daily-plan/plan-header.tsx (1)
76-83
: Consider adding input validation and accessibility.The number input for planned time could benefit from:
- Min/max validation
- Accessibility labels
- Enter key handling for better UX
<input min={0} + max={24} type="number" + aria-label="Planned work time in hours" + onKeyDown={(e) => { + if (e.key === 'Enter') { + updateDailyPlan({ workTimePlanned: time }, plan.id ?? ''); + setEditTime(false); + } + }} className={clsxm( 'p-0 text-xs font-medium text-center bg-transparent border-b outline-none max-w-[54px]' )} onChange={(e) => setTime(parseFloat(e.target.value))} />apps/web/core/components/pages/time-and-activity/page-component.tsx (1)
103-107
: Verify the loading condition logic.The condition
loading && (!rapportDailyActivity || !activeTeam)
might be too restrictive. Consider if the skeleton should be shown when either:
loading
is true (regardless of data state), OR- Critical data is missing (regardless of loading state)
- if (loading && (!rapportDailyActivity || !activeTeam)) { + if (loading || !rapportDailyActivity || !activeTeam) { return <TimeActivityPageSkeleton showTimer={isTrackingEnabled} fullWidth={fullWidth} />; }This would show the skeleton whenever any critical requirement is missing, providing a more consistent loading experience.
apps/web/app/[locale]/(main)/settings/team/page.tsx (1)
78-79
: Remove development comment.The comment referencing "Medium article pattern" appears to be a development note that should be removed.
{ ssr: false - // Note: No loading property for accordion content (Medium article pattern) }
apps/web/app/[locale]/(main)/reports/weekly-limit/page.tsx (1)
184-187
: Consider enhancing the loading conditionThe loading check could be more comprehensive to handle edge cases where data might be empty but not loading.
-// IMPORTANT: This must be AFTER all hooks to avoid "Rendered fewer hooks than expected" error -if (!organization || !organizationLimits || getTimeLimitReportLoading) { - return <ReportsPageSkeleton showTimer={isTrackingEnabled} fullWidth={false} />; -} +// IMPORTANT: This must be AFTER all hooks to avoid "Rendered fewer hooks than expected" error +if (!organization || !organizationLimits || getTimeLimitReportLoading || !timeLimitsReports) { + return <ReportsPageSkeleton showTimer={isTrackingEnabled} fullWidth={false} />; +}apps/web/core/components/optimized-components.tsx (1)
88-108
: Consider adding skeleton fallbacks for consistencyThe
LazyTimer
,LazyJoinTeamModal
, andLazyCreateTeamModal
components don't have skeleton loading fallbacks, while other components do. For consistency in the loading experience, consider adding appropriate skeletons.export const LazyTimer = dynamic( () => import('@/core/components/timer/timer').then((mod) => ({ default: mod.Timer })), { - ssr: false + ssr: false, + loading: () => <div className="w-full h-32 bg-[#F0F0F0] dark:bg-[#353741] animate-pulse rounded-lg" /> } ); export const LazyJoinTeamModal = dynamic( () => import('@/core/components/features/teams/join-team-modal').then((mod) => ({ default: mod.JoinTeamModal })), { - ssr: false + ssr: false, + loading: () => <div className="w-96 h-64 bg-[#F0F0F0] dark:bg-[#353741] animate-pulse rounded-lg" /> } ); export const LazyCreateTeamModal = dynamic( () => import('@/core/components/features/teams/create-team-modal').then((mod) => ({ default: mod.CreateTeamModal })), { - ssr: false + ssr: false, + loading: () => <div className="w-96 h-64 bg-[#F0F0F0] dark:bg-[#353741] animate-pulse rounded-lg" /> } );apps/web/core/components/common/skeleton/profile-component-skeletons.tsx (1)
296-296
: Fix typo in component name.The component name has a typo - "Screenshoot" should be "Screenshot".
-export const ScreenshootTabSkeleton: FC<SkeletonProps> = ({ className }) => { +export const ScreenshotTabSkeleton: FC<SkeletonProps> = ({ className }) => {Don't forget to update the corresponding references in the default export and any usage.
apps/web/core/components/projects/filters-card-modal.tsx (1)
216-224
: RedundantcloseModal()
call
handleApplyFilters()
already invokescloseModal()
, so calling it again immediately afterwards is unnecessary.- handleApplyFilters(); - closeModal(); + handleApplyFilters();
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (68)
apps/web/app/[locale]/(main)/(teams)/team/[teamId]/[profileLink]/page.tsx
(2 hunks)apps/web/app/[locale]/(main)/(teams)/team/tasks/page.tsx
(6 hunks)apps/web/app/[locale]/(main)/calendar/page.tsx
(4 hunks)apps/web/app/[locale]/(main)/dashboard/app-url/[teamId]/page.tsx
(4 hunks)apps/web/app/[locale]/(main)/dashboard/team-dashboard/[teamId]/page.tsx
(4 hunks)apps/web/app/[locale]/(main)/kanban/page.tsx
(3 hunks)apps/web/app/[locale]/(main)/profile/[memberId]/page.tsx
(6 hunks)apps/web/app/[locale]/(main)/reports/weekly-limit/page.tsx
(5 hunks)apps/web/app/[locale]/(main)/settings/layout.tsx
(2 hunks)apps/web/app/[locale]/(main)/settings/loading.tsx
(1 hunks)apps/web/app/[locale]/(main)/settings/personal/page.tsx
(3 hunks)apps/web/app/[locale]/(main)/settings/team/page.tsx
(8 hunks)apps/web/core/components/activities/activity-calendar.tsx
(1 hunks)apps/web/core/components/activities/screen-calendar.tsx
(0 hunks)apps/web/core/components/common/global-skeleton.tsx
(1 hunks)apps/web/core/components/common/loading-app.tsx
(1 hunks)apps/web/core/components/common/skeleton/activity-calendar-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/app-urls-dashboard-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/calendar-component-skeletons.tsx
(1 hunks)apps/web/core/components/common/skeleton/calendar-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/productivity-header-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/productivity-stats-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/profile-component-skeletons.tsx
(1 hunks)apps/web/core/components/common/skeleton/profile-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/reports-component-skeletons.tsx
(1 hunks)apps/web/core/components/common/skeleton/reports-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/rich-text-editor-skeleton.tsx
(5 hunks)apps/web/core/components/common/skeleton/settings-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/settings-skeletons.tsx
(1 hunks)apps/web/core/components/common/skeleton/task-details-page-skeleton.tsx
(8 hunks)apps/web/core/components/common/skeleton/team-dashboard-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/team-stats-grid-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/time-activity-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/time-activity-skeletons.tsx
(1 hunks)apps/web/core/components/common/skeleton/timesheet-page-skeleton.tsx
(1 hunks)apps/web/core/components/common/skeleton/timesheet-skeletons.tsx
(9 hunks)apps/web/core/components/common/sort-popover.tsx
(3 hunks)apps/web/core/components/daily-plan/all-plans.tsx
(1 hunks)apps/web/core/components/daily-plan/empty-plans.tsx
(1 hunks)apps/web/core/components/daily-plan/index.ts
(1 hunks)apps/web/core/components/daily-plan/plan-header.tsx
(1 hunks)apps/web/core/components/duplicated-components/_progress-bar.tsx
(3 hunks)apps/web/core/components/layouts/app/authenticator.tsx
(2 hunks)apps/web/core/components/layouts/skeletons/all-teams-page-skeleton.tsx
(1 hunks)apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx
(1 hunks)apps/web/core/components/layouts/skeletons/team-member-profile-page-skeleton.tsx
(1 hunks)apps/web/core/components/layouts/skeletons/team-tasks-page-skeleton.tsx
(1 hunks)apps/web/core/components/optimized-components.tsx
(1 hunks)apps/web/core/components/pages/dashboard/dashboard-header.tsx
(0 hunks)apps/web/core/components/pages/dashboard/task-timer-section.tsx
(2 hunks)apps/web/core/components/pages/dashboard/team-dashboard/team-stats-table.tsx
(0 hunks)apps/web/core/components/pages/profile/user-profile-tasks.tsx
(4 hunks)apps/web/core/components/pages/projects/page-component.tsx
(0 hunks)apps/web/core/components/pages/task/task-details.tsx
(2 hunks)apps/web/core/components/pages/teams/all-teams/page-component.tsx
(2 hunks)apps/web/core/components/pages/time-and-activity/activity-level-cell.tsx
(2 hunks)apps/web/core/components/pages/time-and-activity/page-component.tsx
(5 hunks)apps/web/core/components/pages/timesheet/timesheet-page-content.tsx
(6 hunks)apps/web/core/components/projects/filters-card-modal.tsx
(11 hunks)apps/web/core/components/tasks/daily-plan/future-tasks.tsx
(3 hunks)apps/web/core/components/tasks/daily-plan/outstanding-all.tsx
(1 hunks)apps/web/core/components/tasks/daily-plan/outstanding-date.tsx
(2 hunks)apps/web/core/components/tasks/daily-plan/past-tasks.tsx
(2 hunks)apps/web/core/components/tasks/kanban.tsx
(0 hunks)apps/web/core/components/tasks/task-block-card.tsx
(1 hunks)apps/web/core/components/users/user-profile-plans.tsx
(5 hunks)apps/web/core/hooks/auth/use-authenticate-user.ts
(1 hunks)apps/web/core/types/interfaces/user/user.ts
(1 hunks)
💤 Files with no reviewable changes (5)
- apps/web/core/components/tasks/kanban.tsx
- apps/web/core/components/pages/projects/page-component.tsx
- apps/web/core/components/pages/dashboard/team-dashboard/team-stats-table.tsx
- apps/web/core/components/pages/dashboard/dashboard-header.tsx
- apps/web/core/components/activities/screen-calendar.tsx
🧰 Additional context used
🧠 Learnings (60)
📓 Common learnings
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
apps/web/core/components/tasks/daily-plan/outstanding-all.tsx (4)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
apps/web/app/[locale]/(main)/settings/loading.tsx (1)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
apps/web/core/components/daily-plan/index.ts (2)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
apps/web/core/components/pages/dashboard/task-timer-section.tsx (7)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
apps/web/core/components/common/sort-popover.tsx (5)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/lib/layout/main-layout.tsx:63-63
Timestamp: 2024-10-25T14:59:25.183Z
Learning: In the `ever-teams` codebase, custom CSS classes may include unconventional or non-standard Tailwind CSS syntax, such as `group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12`, which are intentional and should not be flagged as issues.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
apps/web/app/[locale]/(main)/(teams)/team/[teamId]/[profileLink]/page.tsx (8)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: CREDO23
PR: ever-co/ever-teams#3532
File: apps/web/components/pages/team/tasks/DropdownMenuTask.tsx:20-21
Timestamp: 2025-01-21T18:44:28.130Z
Learning: In the Ever Teams application, task assignment operations require member information obtained through the `useTeamMemberCard` hook, which needs the team member object as an argument. This member object is typically found by matching the current user's ID with the employee user ID in the active team's members list.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
apps/web/core/components/common/skeleton/productivity-header-skeleton.tsx (8)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:407-413
Timestamp: 2024-11-25T18:44:57.271Z
Learning: In React applications using Headless UI, when using `Listbox.Option` with `as={Fragment}`, it's acceptable to keep the `key` prop on the `Listbox.Option` component, as per the Headless UI documentation.
apps/web/core/hooks/auth/use-authenticate-user.ts (1)
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
apps/web/core/components/daily-plan/empty-plans.tsx (6)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
apps/web/core/components/tasks/task-block-card.tsx (8)
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/lib/layout/main-layout.tsx:63-63
Timestamp: 2024-10-25T14:59:25.183Z
Learning: In the `ever-teams` codebase, custom CSS classes may include unconventional or non-standard Tailwind CSS syntax, such as `group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12`, which are intentional and should not be flagged as issues.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3185
File: apps/web/lib/settings/task-statuses-form.tsx:187-199
Timestamp: 2024-11-07T14:04:24.336Z
Learning: In `apps/web/lib/settings/task-statuses-form.tsx`, when generating colors in the `getRandomColor` function, prefer to keep generating them randomly to have more than five colors, even if it might affect color accessibility.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
apps/web/app/[locale]/(main)/kanban/page.tsx (8)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
apps/web/core/components/common/skeleton/activity-calendar-skeleton.tsx (2)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
apps/web/app/[locale]/(main)/settings/personal/page.tsx (1)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
apps/web/app/[locale]/(main)/dashboard/app-url/[teamId]/page.tsx (10)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
apps/web/core/components/common/skeleton/team-stats-grid-skeleton.tsx (6)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
apps/web/core/components/pages/task/task-details.tsx (7)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/components/pages/kanban/menu-kanban-card.tsx:85-85
Timestamp: 2024-11-20T19:57:48.324Z
Learning: We are gradually migrating from 'taskName' to 'title' as we make changes to the remaining files.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
apps/web/core/components/tasks/daily-plan/past-tasks.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:29-29
Timestamp: 2024-10-28T17:22:19.947Z
Learning: In `apps/web/app/stores/team-tasks.ts`, tasks should be sorted alphabetically, not by `createdAt` date.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/components/pages/kanban/menu-kanban-card.tsx:85-85
Timestamp: 2024-11-20T19:57:48.324Z
Learning: We are gradually migrating from 'taskName' to 'title' as we make changes to the remaining files.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/FrequencySelect.tsx:67-79
Timestamp: 2024-10-30T16:25:19.910Z
Learning: The date range selection functionality for the date range options in the `FilterTaskActionMenu` component will be implemented in a future PR.
apps/web/core/components/pages/time-and-activity/activity-level-cell.tsx (8)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/lib/layout/main-layout.tsx:63-63
Timestamp: 2024-10-25T14:59:25.183Z
Learning: In the `ever-teams` codebase, custom CSS classes may include unconventional or non-standard Tailwind CSS syntax, such as `group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12`, which are intentional and should not be flagged as issues.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
apps/web/core/components/common/skeleton/task-details-page-skeleton.tsx (13)
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/components/pages/kanban/menu-kanban-card.tsx:85-85
Timestamp: 2024-11-20T19:57:48.324Z
Learning: We are gradually migrating from 'taskName' to 'title' as we make changes to the remaining files.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:29-29
Timestamp: 2024-10-28T17:22:19.947Z
Learning: In `apps/web/app/stores/team-tasks.ts`, tasks should be sorted alphabetically, not by `createdAt` date.
Learnt from: CREDO23
PR: ever-co/ever-teams#3350
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:142-142
Timestamp: 2024-11-19T20:00:06.323Z
Learning: In the `TaskSecondaryInfo` component, rendering the `EpicParent` component twice is intentional and should not be flagged as an issue.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:407-413
Timestamp: 2024-11-25T18:44:57.271Z
Learning: In React applications using Headless UI, when using `Listbox.Option` with `as={Fragment}`, it's acceptable to keep the `key` prop on the `Listbox.Option` component, as per the Headless UI documentation.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/lib/layout/main-layout.tsx:63-63
Timestamp: 2024-10-25T14:59:25.183Z
Learning: In the `ever-teams` codebase, custom CSS classes may include unconventional or non-standard Tailwind CSS syntax, such as `group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12`, which are intentional and should not be flagged as issues.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
apps/web/core/components/pages/teams/all-teams/page-component.tsx (11)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: CREDO23
PR: ever-co/ever-teams#3532
File: apps/web/components/pages/team/tasks/DropdownMenuTask.tsx:20-21
Timestamp: 2025-01-21T18:44:28.130Z
Learning: In the Ever Teams application, task assignment operations require member information obtained through the `useTeamMemberCard` hook, which needs the team member object as an argument. This member object is typically found by matching the current user's ID with the employee user ID in the active team's members list.
apps/web/core/components/pages/profile/user-profile-tasks.tsx (10)
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: CREDO23
PR: ever-co/ever-teams#3532
File: apps/web/components/pages/team/tasks/DropdownMenuTask.tsx:20-21
Timestamp: 2025-01-21T18:44:28.130Z
Learning: In the Ever Teams application, task assignment operations require member information obtained through the `useTeamMemberCard` hook, which needs the team member object as an argument. This member object is typically found by matching the current user's ID with the employee user ID in the active team's members list.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
apps/web/app/[locale]/(main)/settings/team/page.tsx (5)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3532
File: apps/web/components/pages/team/tasks/DropdownMenuTask.tsx:20-21
Timestamp: 2025-01-21T18:44:28.130Z
Learning: In the Ever Teams application, task assignment operations require member information obtained through the `useTeamMemberCard` hook, which needs the team member object as an argument. This member object is typically found by matching the current user's ID with the employee user ID in the active team's members list.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
apps/web/core/components/pages/time-and-activity/page-component.tsx (10)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: CREDO23
PR: ever-co/ever-teams#3392
File: apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx:42-51
Timestamp: 2024-12-05T09:04:08.049Z
Learning: In the `GroupBySelect` component (`apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx`), only one option can be selected at a time; two options cannot be selected simultaneously.
apps/web/core/components/tasks/daily-plan/outstanding-date.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:29-29
Timestamp: 2024-10-28T17:22:19.947Z
Learning: In `apps/web/app/stores/team-tasks.ts`, tasks should be sorted alphabetically, not by `createdAt` date.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/components/pages/kanban/menu-kanban-card.tsx:85-85
Timestamp: 2024-11-20T19:57:48.324Z
Learning: We are gradually migrating from 'taskName' to 'title' as we make changes to the remaining files.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
apps/web/core/components/common/skeleton/time-activity-page-skeleton.tsx (5)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
apps/web/app/[locale]/(main)/(teams)/team/tasks/page.tsx (13)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:29-29
Timestamp: 2024-10-28T17:22:19.947Z
Learning: In `apps/web/app/stores/team-tasks.ts`, tasks should be sorted alphabetically, not by `createdAt` date.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
Learnt from: CREDO23
PR: ever-co/ever-teams#3532
File: apps/web/components/pages/team/tasks/DropdownMenuTask.tsx:20-21
Timestamp: 2025-01-21T18:44:28.130Z
Learning: In the Ever Teams application, task assignment operations require member information obtained through the `useTeamMemberCard` hook, which needs the team member object as an argument. This member object is typically found by matching the current user's ID with the employee user ID in the active team's members list.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:407-413
Timestamp: 2024-11-25T18:44:57.271Z
Learning: In React applications using Headless UI, when using `Listbox.Option` with `as={Fragment}`, it's acceptable to keep the `key` prop on the `Listbox.Option` component, as per the Headless UI documentation.
apps/web/core/components/common/skeleton/productivity-stats-skeleton.tsx (7)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:407-413
Timestamp: 2024-11-25T18:44:57.271Z
Learning: In React applications using Headless UI, when using `Listbox.Option` with `as={Fragment}`, it's acceptable to keep the `key` prop on the `Listbox.Option` component, as per the Headless UI documentation.
apps/web/app/[locale]/(main)/calendar/page.tsx (10)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
apps/web/core/components/tasks/daily-plan/future-tasks.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:29-29
Timestamp: 2024-10-28T17:22:19.947Z
Learning: In `apps/web/app/stores/team-tasks.ts`, tasks should be sorted alphabetically, not by `createdAt` date.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/components/pages/kanban/menu-kanban-card.tsx:85-85
Timestamp: 2024-11-20T19:57:48.324Z
Learning: We are gradually migrating from 'taskName' to 'title' as we make changes to the remaining files.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
apps/web/app/[locale]/(main)/settings/layout.tsx (6)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
apps/web/core/components/common/skeleton/timesheet-page-skeleton.tsx (6)
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
apps/web/core/components/common/loading-app.tsx (7)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
apps/web/core/components/layouts/app/authenticator.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
apps/web/app/[locale]/(main)/dashboard/team-dashboard/[teamId]/page.tsx (11)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
apps/web/core/components/pages/timesheet/timesheet-page-content.tsx (11)
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
apps/web/core/components/common/skeleton/rich-text-editor-skeleton.tsx (3)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/lib/layout/main-layout.tsx:63-63
Timestamp: 2024-10-25T14:59:25.183Z
Learning: In the `ever-teams` codebase, custom CSS classes may include unconventional or non-standard Tailwind CSS syntax, such as `group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12`, which are intentional and should not be flagged as issues.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
apps/web/core/components/common/skeleton/reports-page-skeleton.tsx (3)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3392
File: apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx:42-51
Timestamp: 2024-12-05T09:04:08.049Z
Learning: In the `GroupBySelect` component (`apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx`), only one option can be selected at a time; two options cannot be selected simultaneously.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
apps/web/core/components/common/skeleton/profile-page-skeleton.tsx (6)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
apps/web/core/components/common/skeleton/team-dashboard-page-skeleton.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
apps/web/core/components/projects/filters-card-modal.tsx (13)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/lib/layout/main-layout.tsx:63-63
Timestamp: 2024-10-25T14:59:25.183Z
Learning: In the `ever-teams` codebase, custom CSS classes may include unconventional or non-standard Tailwind CSS syntax, such as `group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12`, which are intentional and should not be flagged as issues.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:407-413
Timestamp: 2024-11-25T18:44:57.271Z
Learning: In React applications using Headless UI, when using `Listbox.Option` with `as={Fragment}`, it's acceptable to keep the `key` prop on the `Listbox.Option` component, as per the Headless UI documentation.
Learnt from: CREDO23
PR: ever-co/ever-teams#3392
File: apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx:42-51
Timestamp: 2024-12-05T09:04:08.049Z
Learning: In the `GroupBySelect` component (`apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx`), only one option can be selected at a time; two options cannot be selected simultaneously.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
apps/web/core/components/common/skeleton/calendar-page-skeleton.tsx (2)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
apps/web/core/components/daily-plan/plan-header.tsx (7)
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
apps/web/core/components/common/skeleton/timesheet-skeletons.tsx (8)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/lib/layout/main-layout.tsx:63-63
Timestamp: 2024-10-25T14:59:25.183Z
Learning: In the `ever-teams` codebase, custom CSS classes may include unconventional or non-standard Tailwind CSS syntax, such as `group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12`, which are intentional and should not be flagged as issues.
apps/web/app/[locale]/(main)/profile/[memberId]/page.tsx (14)
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:407-413
Timestamp: 2024-11-25T18:44:57.271Z
Learning: In React applications using Headless UI, when using `Listbox.Option` with `as={Fragment}`, it's acceptable to keep the `key` prop on the `Listbox.Option` component, as per the Headless UI documentation.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
Learnt from: CREDO23
PR: ever-co/ever-teams#3532
File: apps/web/components/pages/team/tasks/DropdownMenuTask.tsx:20-21
Timestamp: 2025-01-21T18:44:28.130Z
Learning: In the Ever Teams application, task assignment operations require member information obtained through the `useTeamMemberCard` hook, which needs the team member object as an argument. This member object is typically found by matching the current user's ID with the employee user ID in the active team's members list.
apps/web/core/components/layouts/skeletons/team-member-profile-page-skeleton.tsx (7)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
Learnt from: CREDO23
PR: ever-co/ever-teams#3532
File: apps/web/components/pages/team/tasks/DropdownMenuTask.tsx:20-21
Timestamp: 2025-01-21T18:44:28.130Z
Learning: In the Ever Teams application, task assignment operations require member information obtained through the `useTeamMemberCard` hook, which needs the team member object as an argument. This member object is typically found by matching the current user's ID with the employee user ID in the active team's members list.
apps/web/core/components/layouts/skeletons/all-teams-page-skeleton.tsx (6)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
apps/web/core/components/layouts/skeletons/team-tasks-page-skeleton.tsx (4)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
apps/web/core/components/common/skeleton/app-urls-dashboard-page-skeleton.tsx (5)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
apps/web/core/components/common/skeleton/time-activity-skeletons.tsx (4)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
apps/web/core/components/common/skeleton/settings-skeletons.tsx (5)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: syns2191
PR: ever-co/ever-teams#3409
File: apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx:18-19
Timestamp: 2024-12-11T01:40:38.438Z
Learning: In the `EverTeamsLogo` component (`apps/server-web/src/renderer/components/svgs/EverTeamsLogo.tsx`), it's acceptable to have multiple elements with the same `id` attribute.
apps/web/core/components/daily-plan/all-plans.tsx (9)
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:29-29
Timestamp: 2024-10-28T17:22:19.947Z
Learning: In `apps/web/app/stores/team-tasks.ts`, tasks should be sorted alphabetically, not by `createdAt` date.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/FrequencySelect.tsx:67-79
Timestamp: 2024-10-30T16:25:19.910Z
Learning: The date range selection functionality for the date range options in the `FilterTaskActionMenu` component will be implemented in a future PR.
apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx (6)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
apps/web/core/components/common/skeleton/calendar-component-skeletons.tsx (5)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/TimesheetFilter.tsx:30-35
Timestamp: 2024-10-30T16:31:01.294Z
Learning: In the `TimesheetFilter` component, the `Add Time` button does not need to use the `AddManualTimeModal` component, as per the user's decision.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
apps/web/core/components/optimized-components.tsx (10)
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
apps/web/core/components/duplicated-components/_progress-bar.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: CREDO23
PR: ever-co/ever-teams#3185
File: apps/web/lib/settings/task-statuses-form.tsx:187-199
Timestamp: 2024-11-07T14:04:24.336Z
Learning: In `apps/web/lib/settings/task-statuses-form.tsx`, when generating colors in the `getRandomColor` function, prefer to keep generating them randomly to have more than five colors, even if it might affect color accessibility.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:132-217
Timestamp: 2024-10-25T15:17:29.070Z
Learning: Components derived from shadcn-ui have already been checked for performance optimizations; additional performance optimizations may not be necessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
apps/web/core/components/users/user-profile-plans.tsx (10)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: Innocent-Akim
PR: ever-co/ever-teams#3208
File: apps/web/app/[locale]/timesheet/components/FrequencySelect.tsx:67-79
Timestamp: 2024-10-30T16:25:19.910Z
Learning: The date range selection functionality for the date range options in the `FilterTaskActionMenu` component will be implemented in a future PR.
apps/web/core/components/common/skeleton/profile-component-skeletons.tsx (6)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/app/stores/team-tasks.ts:39-40
Timestamp: 2024-10-28T17:23:01.110Z
Learning: The `favoriteTasksAtom` in `apps/web/app/stores/team-tasks.ts` is important for future implementations and should not be removed, even if it appears unused currently.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
apps/web/core/components/common/global-skeleton.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/app-sidebar.tsx:49-55
Timestamp: 2024-10-28T17:16:03.609Z
Learning: In `apps/web/components/app-sidebar.tsx`, hardcoded sample user data is intentionally included and should not be removed.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
apps/web/app/[locale]/(main)/reports/weekly-limit/page.tsx (7)
Learnt from: CREDO23
PR: ever-co/ever-teams#3392
File: apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx:42-51
Timestamp: 2024-12-05T09:04:08.049Z
Learning: In the `GroupBySelect` component (`apps/web/app/[locale]/reports/weekly-limit/components/group-by-select.tsx`), only one option can be selected at a time; two options cannot be selected simultaneously.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
🧬 Code Graph Analysis (21)
apps/web/core/components/pages/dashboard/task-timer-section.tsx (1)
apps/web/core/components/optimized-components.tsx (1)
LazyTimer
(88-93)
apps/web/app/[locale]/(main)/(teams)/team/[teamId]/[profileLink]/page.tsx (1)
apps/web/core/components/layouts/skeletons/team-member-profile-page-skeleton.tsx (1)
TeamMemberProfilePageSkeleton
(16-131)
apps/web/core/components/daily-plan/empty-plans.tsx (2)
apps/web/core/components/users/user-profile-plans.tsx (1)
FilterTabs
(39-39)apps/web/app/[locale]/next-intl.d.ts (1)
useTranslations
(24-24)
apps/web/app/[locale]/(main)/kanban/page.tsx (1)
apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx (1)
KanbanPageSkeleton
(16-175)
apps/web/app/[locale]/(main)/dashboard/app-url/[teamId]/page.tsx (2)
apps/web/core/components/common/skeleton/productivity-header-skeleton.tsx (1)
ProductivityHeaderSkeleton
(11-20)apps/web/core/components/common/skeleton/productivity-stats-skeleton.tsx (1)
ProductivityStatsSkeleton
(11-33)
apps/web/core/components/pages/task/task-details.tsx (1)
apps/web/core/components/common/skeleton/rich-text-editor-skeleton.tsx (1)
DetailsAsideSkeleton
(109-138)
apps/web/core/components/pages/teams/all-teams/page-component.tsx (1)
apps/web/core/components/layouts/skeletons/all-teams-page-skeleton.tsx (1)
AllTeamsPageSkeleton
(16-132)
apps/web/core/components/pages/profile/user-profile-tasks.tsx (2)
apps/web/core/components/optimized-components.tsx (2)
LazyTaskCard
(13-19)LazyActivityCalendar
(20-26)apps/web/core/components/common/skeleton/activity-calendar-skeleton.tsx (1)
ActivityCalendarSkeleton
(3-19)
apps/web/app/[locale]/(main)/(teams)/team/tasks/page.tsx (1)
apps/web/core/components/layouts/skeletons/team-tasks-page-skeleton.tsx (1)
TeamTasksPageSkeleton
(16-155)
apps/web/app/[locale]/(main)/calendar/page.tsx (5)
apps/web/core/components/common/skeleton/calendar-component-skeletons.tsx (3)
SetupFullCalendarSkeleton
(16-106)SetupTimeSheetSkeleton
(112-206)AddManualTimeModalSkeleton
(212-245)apps/web/core/components/common/skeleton/calendar-page-skeleton.tsx (1)
CalendarPageSkeleton
(16-186)apps/web/app/[locale]/(main)/layout.tsx (1)
MainLayout
(4-11)apps/web/core/components/layouts/default-layout/footer.tsx (1)
Footer
(12-42)apps/server-web/src/renderer/libs/utils/clsxm.ts (1)
clsxm
(5-7)
apps/web/core/components/layouts/app/authenticator.tsx (3)
apps/web/core/components/common/loader.tsx (1)
BackdropLoader
(46-90)apps/web/core/components/common/skeleton/modal-skeleton.tsx (1)
ModalSkeleton
(8-45)apps/web/core/components/optimized-components.tsx (2)
LazyCreateTeamModal
(102-108)LazyJoinTeamModal
(95-100)
apps/web/app/[locale]/(main)/dashboard/team-dashboard/[teamId]/page.tsx (2)
apps/web/core/components/common/skeleton/team-stats-grid-skeleton.tsx (1)
TeamStatsGridSkeleton
(11-29)apps/web/core/components/common/skeleton/team-dashboard-page-skeleton.tsx (1)
TeamDashboardPageSkeleton
(17-152)
apps/web/core/components/common/skeleton/rich-text-editor-skeleton.tsx (1)
apps/server-web/src/renderer/libs/utils/clsxm.ts (1)
clsxm
(5-7)
apps/web/core/components/projects/filters-card-modal.tsx (1)
apps/web/core/components/common/ever-card.tsx (1)
EverCard
(9-24)
apps/web/core/components/common/skeleton/settings-page-skeleton.tsx (1)
apps/web/core/components/common/skeleton/task-details-page-skeleton.tsx (1)
TitleBlockSkeleton
(61-93)
apps/web/core/components/common/skeleton/timesheet-skeletons.tsx (1)
apps/server-web/src/renderer/libs/utils/clsxm.ts (1)
clsxm
(5-7)
apps/web/core/components/daily-plan/all-plans.tsx (11)
apps/web/core/components/users/user-profile-plans.tsx (1)
FilterTabs
(39-39)apps/web/core/types/schemas/user/user.schema.ts (1)
TUser
(164-164)apps/web/core/types/schemas/task/daily-plan.schema.ts (1)
TDailyPlan
(94-94)apps/web/core/stores/common/header-tabs.ts (1)
dailyPlanViewHeaderTabs
(8-8)apps/web/core/hooks/daily-plans/use-filter-date-range.ts (1)
filterDailyPlan
(89-99)apps/web/core/lib/helpers/drag-and-drop.ts (1)
handleDragAndDrop
(5-37)apps/web/core/lib/helpers/date-and-time.ts (1)
formatDayPlanDate
(176-187)apps/web/core/components/daily-plan/plan-header.tsx (1)
PlanHeader
(17-163)apps/web/core/components/tasks/daily-plan/table-view/index.tsx (1)
DailyPlanTasksTableView
(29-76)apps/web/core/components/optimized-components.tsx (1)
LazyTaskCard
(13-19)apps/web/core/components/daily-plan/empty-plans.tsx (1)
EmptyPlans
(7-18)
apps/web/core/components/optimized-components.tsx (2)
apps/web/core/components/common/skeleton/activity-calendar-skeleton.tsx (1)
ActivityCalendarSkeleton
(3-19)apps/web/core/components/common/skeleton/profile-component-skeletons.tsx (6)
UserProfileDetailSkeleton
(16-30)UserProfileTaskSkeleton
(170-199)TaskFilterSkeleton
(325-400)AppsTabSkeleton
(205-246)VisitedSitesTabSkeleton
(252-293)ScreenshootTabSkeleton
(299-319)
apps/web/core/components/duplicated-components/_progress-bar.tsx (1)
apps/server-web/src/renderer/libs/utils/clsxm.ts (1)
clsxm
(5-7)
apps/web/core/components/users/user-profile-plans.tsx (2)
apps/web/core/components/tasks/daily-plan/task-estimated-count.tsx (2)
getTotalTasks
(50-64)estimatedTotalTime
(32-48)apps/web/core/hooks/daily-plans/use-daily-plan.ts (1)
FilterTabs
(30-30)
apps/web/core/components/common/global-skeleton.tsx (2)
apps/web/core/stores/common/full-width.ts (1)
fullWidthState
(3-3)apps/web/core/components/common/skeleton/app-sidebar-skeleton.tsx (1)
AppSidebarSkeleton
(16-120)
🪛 GitHub Actions: Knip Review - Cleanup Unused Code - WEB
apps/web/core/types/interfaces/user/user.ts
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/productivity-header-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/team-stats-grid-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/task-details-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/time-activity-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/productivity-stats-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/timesheet-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/loading-app.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/layouts/app/authenticator.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/reports-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/profile-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/team-dashboard-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/calendar-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/settings-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/layouts/skeletons/team-member-profile-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/layouts/skeletons/all-teams-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/layouts/skeletons/team-tasks-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/app-urls-dashboard-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/time-activity-skeletons.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/calendar-component-skeletons.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/duplicated-components/_progress-bar.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/profile-component-skeletons.tsx
[error] 1-1: Unused code detected in this file.
apps/web/core/components/common/skeleton/reports-component-skeletons.tsx
[error] 1-1: Unused code detected in this file.
🪛 GitHub Check: Cspell
apps/web/core/components/duplicated-components/_progress-bar.tsx
[warning] 108-108:
Unknown word (nécessaire)
[warning] 108-108:
Unknown word (quand)
[warning] 108-108:
Unknown word (seulement)
🪛 GitHub Actions: Check Spelling and Typos with cspell
apps/web/core/components/duplicated-components/_progress-bar.tsx
[warning] 108-108: cspell: Unknown word 'seulement' detected.
[warning] 108-108: cspell: Unknown word 'quand' detected.
[warning] 108-108: cspell: Unknown word 'nécessaire' detected.
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: deploy
- GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (102)
apps/web/core/components/common/sort-popover.tsx (1)
19-19
: Good standardization of text sizes and label handling.The changes improve consistency by using Tailwind's predefined
text-xs
utility class and properly handling label text wrapping.Also applies to: 34-34, 44-44
apps/web/core/components/duplicated-components/_progress-bar.tsx (1)
137-207
: ```shell
#!/bin/bashRe-run usage checks without restricting file types
echo "=== Searching for SegmentedProgressBar usage ==="
rg "SegmentedProgressBar" -A 2echo -e "\n=== Searching for SegmentedProgressBarVirtualized usage ==="
rg "SegmentedProgressBarVirtualized" -A 2</details> <details> <summary>apps/web/core/components/common/skeleton/calendar-component-skeletons.tsx (1)</summary> `1-251`: ```shell #!/bin/bash # Re-run searches without relying on file-type configs echo "=== Checking SetupFullCalendarSkeleton usage ===" rg "SetupFullCalendarSkeleton" --glob "*.tsx" --glob "*.ts" -n echo -e "\n=== Checking SetupTimeSheetSkeleton usage ===" rg "SetupTimeSheetSkeleton" --glob "*.tsx" --glob "*.ts" -n echo -e "\n=== Checking AddManualTimeModalSkeleton usage ===" rg "AddManualTimeModalSkeleton" --glob "*.tsx" --glob "*.ts" -n echo -e "\n=== Checking imports from calendar-component-skeletons.tsx ===" rg "calendar-component-skeletons" --glob "*.tsx" --glob "*.ts" -n -A2
apps/web/core/components/tasks/daily-plan/outstanding-all.tsx (1)
1-1
: LGTM! Import path updated correctly.The import path change aligns with the component refactoring that moved daily plan components to a dedicated directory, improving code organization.
apps/web/core/types/interfaces/user/user.ts (1)
69-69
: LGTM! New property supports enhanced loading states.The
userLoading
property enables components to conditionally render skeleton UIs during user data fetching, aligning with the PR's skeleton loading system implementation.The pipeline failure about unused code is likely a false positive since this property was just added and may not have full usage across all components yet.
apps/web/core/components/pages/task/task-details.tsx (1)
8-8
: LGTM! Skeleton component rename improves consistency.The change from
TaskDetailsAsideSkeleton
toDetailsAsideSkeleton
aligns with the broader effort to standardize skeleton component naming and improve reusability across the application.Also applies to: 39-39
apps/web/app/[locale]/(main)/settings/loading.tsx (1)
1-5
: LGTM! Clean loading component following Next.js conventions.The component correctly implements Next.js route-level loading using the skeleton pattern, providing a smooth loading experience for the settings pages.
apps/web/core/hooks/auth/use-authenticate-user.ts (1)
114-114
: LGTM! Property correctly exposes user data loading state.The
userLoading
property appropriately exposesuserDataQuery.isFetching
to enable components to conditionally render skeleton UIs during user data fetching, supporting the comprehensive loading state improvements.apps/web/app/[locale]/(main)/(teams)/team/[teamId]/[profileLink]/page.tsx (1)
20-20
: Excellent implementation of page-level skeleton loading.The skeleton implementation correctly follows React hooks rules by placing the early return after all hooks, preventing the "Rendered fewer hooks than expected" error. The loading conditions are appropriate and the comments clearly explain the logic.
Also applies to: 74-78
apps/web/core/components/daily-plan/index.ts (1)
7-10
: Good modularization of daily-plan components.The new exports support the refactoring effort to centralize daily-plan related components, improving code organization and reusability across the application.
apps/web/core/components/tasks/daily-plan/past-tasks.tsx (1)
3-3
: Clean import reorganization supporting modularization.The updated imports correctly reference the new locations of
EmptyPlans
andPlanHeader
components after their migration to thedaily-plan
directory, supporting better code organization.Also applies to: 17-17
apps/web/core/components/activities/activity-calendar.tsx (1)
10-10
: LGTM! Skeleton consolidation aligns with PR objectives.The replacement of the local
ActivityCalendarSkeleton
with a shared component from the common skeleton directory successfully consolidates loading states across the application, which is exactly what this PR aims to achieve.apps/web/core/components/common/skeleton/productivity-header-skeleton.tsx (1)
1-23
: Address the unused code detection.The pipeline failure indicates unused code in this file. Please verify that this skeleton component is actually being imported and used somewhere in the codebase.
#!/bin/bash # Description: Search for usage of ProductivityHeaderSkeleton component # Expected: Find imports and usages of this component echo "Searching for ProductivityHeaderSkeleton imports..." rg -A 3 "ProductivityHeaderSkeleton" echo -e "\nSearching for productivity-header-skeleton imports..." rg -A 3 "productivity-header-skeleton"apps/web/core/components/tasks/daily-plan/outstanding-date.tsx (2)
3-3
: LGTM! Import path update reflects component modularization.The updated import path correctly reflects the relocation of
EmptyPlans
andPlanHeader
components from the user-profile-plans module to the dedicated daily-plan directory, improving component organization and reusability.
57-58
: LGTM! Minor CSS class reordering.The class reordering maintains functionality while improving consistency.
apps/web/core/components/pages/profile/user-profile-tasks.tsx (5)
5-5
: LGTM! Suspense import added for lazy loading.The addition of Suspense import supports the lazy loading implementation with proper loading fallbacks.
8-12
: LGTM! Import updates support component modularization and lazy loading.The import path updates reflect the daily-plan component modularization, and the addition of lazy components and skeleton imports properly supports the lazy loading strategy outlined in the PR objectives.
82-82
: LGTM! TaskCard replaced with lazy-loaded version.The replacement with
LazyTaskCard
improves bundle loading by deferring the component load until needed.
97-101
: LGTM! Proper Suspense implementation for ActivityCalendar.The
LazyActivityCalendar
is correctly wrapped in Suspense withActivityCalendarSkeleton
as fallback, providing a smooth loading experience for users while the component loads asynchronously.
119-119
: LGTM! Consistent lazy loading for task list items.The replacement with
LazyTaskCard
in the task list maintains consistency with the lazy loading strategy throughout the component.apps/web/core/components/daily-plan/empty-plans.tsx (1)
1-18
: LGTM! Well-implemented modular component.The
EmptyPlans
component is properly extracted from the user-profile-plans module and follows React best practices with:
- Proper TypeScript typing with
FilterTabs
interface- Internationalization support via
useTranslations
- Conditional messaging based on
planMode
- Clean, readable implementation
This modularization improves component reusability across different daily plan contexts.
apps/web/core/components/common/skeleton/productivity-stats-skeleton.tsx (1)
1-36
: Well-structured skeleton component with proper TypeScript integration.The component follows excellent patterns with consistent styling, dark mode support, and proper JSDoc documentation. The three-column layout appropriately mirrors the actual ProductivityStats component structure.
Regarding the pipeline failure indicating "unused code" - based on the retrieved learnings about progressive migration approaches in this codebase, this is expected behavior during the skeleton system rollout where infrastructure components are added before their usage.
apps/web/core/components/common/skeleton/profile-page-skeleton.tsx (1)
1-58
: Excellent page-level skeleton implementation with proper layout integration.This component demonstrates excellent architecture by seamlessly integrating with the existing
MainLayout
structure while providing comprehensive skeleton coverage for the profile page. The props interface is well-designed with sensible defaults, and the component properly uses sub-skeleton components for modularity.Similar to the previous skeleton component, the pipeline failure indicating "unused code" is expected during the progressive migration approach used in this codebase.
apps/web/app/[locale]/(main)/settings/personal/page.tsx (2)
55-55
: CSS class reordering improves consistency.The reordering of flexbox classes maintains the same functionality while following a consistent ordering pattern.
115-118
: Proper integration with skeleton loading system.The addition of
showPageSkeleton: true
enables unified loading skeleton functionality, which aligns perfectly with the PR objectives for improving loading states across the application.apps/web/core/components/pages/teams/all-teams/page-component.tsx (3)
21-21
: Clean import of skeleton component.The import follows the established pattern for skeleton components in this skeleton system implementation.
40-44
: Correct early return placement and skeleton integration.The early return for the skeleton is properly placed after all hooks, which prevents React's "Rendered fewer hooks than expected" error. The condition check and skeleton usage align perfectly with the loading state requirements.
51-55
: Improved CSS class organization.The reordering of flexbox and layout classes enhances consistency and readability while maintaining the same visual layout and functionality.
apps/web/core/components/tasks/daily-plan/future-tasks.tsx (2)
3-3
: Correct import path update for relocated components.The import path change from
@/core/components/users/user-profile-plans
to@/core/components/daily-plan
properly reflects the component relocation described in the AI summary, whereEmptyPlans
andPlanHeader
were moved to the daily-plan module.
72-73
: Consistent CSS class ordering improvements.The reordering of CSS classes improves consistency throughout the component while maintaining the same visual appearance and functionality.
Also applies to: 182-182, 185-185
apps/web/core/components/common/skeleton/task-details-page-skeleton.tsx (2)
3-8
: LGTM! Component import renaming improves consistency.The renaming from
TaskDetailsAsideSkeleton
toDetailsAsideSkeleton
andTaskTitleBlockSkeleton
toTitleBlockSkeleton
makes these skeleton components more generic and reusable across different contexts.
1-1
: The previous ripgrep invocation didn’t recognize.tsx
as a file type, so let’s search across all.ts
/.tsx
files using glob patterns:#!/bin/bash echo "=== Verifying skeleton component usage across .ts/.tsx files ===" for comp in DetailsAsideSkeleton TitleBlockSkeleton TaskDetailsPageSkeleton TaskDetailsHeaderSkeleton TaskDetailsCompactSkeleton; do echo ">>> Searching for $comp" rg -A3 "$comp" --glob '*.ts' --glob '*.tsx' doneapps/web/app/[locale]/(main)/(teams)/team/tasks/page.tsx (1)
72-74
: LGTM! Correct hook placement prevents React violations.The early return is properly placed after all hooks, preventing "Rendered fewer hooks than expected" errors. The comment clearly explains this important implementation detail.
apps/web/core/components/daily-plan/plan-header.tsx (1)
17-163
: LGTM! Well-structured component with good performance optimizations.The
PlanHeader
component demonstrates excellent React practices:
- Proper use of
useMemo
anduseCallback
for performance optimization- Clear separation of concerns with helper functions
- Appropriate conditional rendering based on permissions and plan mode
- Good state management for editable time functionality
The implementation correctly handles different plan modes and provides a comprehensive view of daily plan statistics.
apps/web/app/[locale]/(main)/kanban/page.tsx (2)
263-268
: LGTM! Correct implementation of unified skeleton loading.The early return pattern is properly implemented:
- Correct hook placement after all hooks
- Appropriate loading conditions checking for data availability
- Consistent with the skeleton loading pattern used across the application
- Clear comment explaining the hook placement requirement
445-451
: LGTM! Simplified conditional rendering improves clarity.The conditional rendering is streamlined and uses the lazy-loaded
LazyKanbanView
component when data is available, falling back toKanbanViewSkeleton
when filtered board has no keys.apps/web/core/components/pages/time-and-activity/page-component.tsx (2)
20-40
: LGTM! Excellent lazy loading implementation for performance optimization.The dynamic imports are well-structured:
- Proper use of
ssr: false
for client-side components- Consistent naming convention with
Lazy
prefix- Clean module resolution with destructuring where needed
This will improve bundle splitting and initial load performance.
127-155
: LGTM! Consistent usage of lazy-loaded components.The lazy-loaded components are used appropriately throughout the render method, maintaining the same props and functionality while benefiting from code splitting.
apps/web/core/components/pages/timesheet/timesheet-page-content.tsx (2)
48-48
: Good addition of unified page skeleton.The import of
TimesheetPageSkeleton
aligns with the consistent skeleton loading pattern across the application.
378-378
: Approve comment simplifications for lazy components.The comment updates for lazy-loaded components improve readability while maintaining the performance benefits of dynamic imports with skeleton fallbacks.
Also applies to: 402-402, 428-428, 450-450
apps/web/app/[locale]/(main)/dashboard/team-dashboard/[teamId]/page.tsx (4)
19-20
: Good addition of skeleton component imports.The imports of
TeamDashboardPageSkeleton
andTeamStatsGridSkeleton
follow the consistent skeleton loading pattern established across the application.
46-56
: Excellent lazy loading implementation with skeleton fallback.The
LazyTeamStatsGrid
component properly implements:
- Dynamic import with module selection
- Server-side rendering disabled for performance
- Skeleton fallback during loading
This follows the established pattern and improves performance through code splitting.
92-95
: Proper implementation of early return pattern.The loading condition and early return are well-implemented:
- Correctly placed after all hooks to avoid React errors
- Clear loading condition checking both loading state and data availability
- Good comment explaining the importance of hook ordering
The condition
loading && (!rapportDailyActivity || rapportDailyActivity.length === 0)
is more appropriate than some other implementations in this PR.
124-127
: Clean integration of lazy-loaded component.The
LazyTeamStatsGrid
is properly integrated with appropriate props, maintaining the existing functionality while adding loading optimization.apps/web/core/components/common/skeleton/team-stats-grid-skeleton.tsx (1)
1-32
: Excellent skeleton component implementation with minor concern.The
TeamStatsGridSkeleton
component is well-implemented with:
- Proper TypeScript interface and documentation
- Responsive grid layout (5 columns) matching the real component
- Consistent dark mode support and pulse animations
- Appropriate card structure with title and value placeholders
However, there's a pipeline failure indicating unused code. Since this component is imported and used in the team dashboard page, this might be a false positive related to the default export or tool configuration.
Let me verify the component usage to confirm it's not actually unused:
#!/bin/bash # Search for usage of TeamStatsGridSkeleton across the codebase echo "=== Searching for TeamStatsGridSkeleton usage ===" rg -A 3 -B 3 "TeamStatsGridSkeleton" echo -e "\n=== Checking imports ===" rg "from.*team-stats-grid-skeleton" echo -e "\n=== Checking if component is used in lazy loading ===" rg -A 5 "LazyTeamStatsGrid"apps/web/app/[locale]/(main)/dashboard/app-url/[teamId]/page.tsx (4)
34-36
: Good addition of skeleton component imports.The imports follow the consistent skeleton loading pattern established across the application, including the full-page skeleton and component-specific skeletons.
50-72
: Excellent lazy loading implementation for productivity components.The lazy-loaded
LazyProductivityHeader
andLazyProductivityStats
components are well-implemented:
- Proper dynamic imports with module selection
- Server-side rendering disabled for client-side optimization
- Appropriate skeleton fallbacks during loading
This approach improves performance through code splitting while maintaining user experience with loading placeholders.
285-288
: Proper early return pattern implementation.The loading condition and early return are correctly implemented:
- Placed after all hooks to avoid React errors
- Appropriate loading condition checking both loading state and data availability
- Returns unified page skeleton for consistent user experience
327-332
: Clean integration of lazy-loaded components.The
LazyProductivityHeader
andLazyProductivityStats
components are properly integrated with appropriate props, maintaining existing functionality while adding performance optimization.apps/web/core/components/layouts/app/authenticator.tsx (4)
1-1
: Good addition of client directive.The 'use client' directive ensures this component runs in the client environment, which is appropriate for authentication and modal handling.
8-14
: Excellent import of lazy components and skeletons.The imports of
Suspense
,BackdropLoader
,GlobalSkeleton
,ModalSkeleton
, and lazy components align with the performance optimization strategy across the application.
62-71
: Improved loading state handling.The updated loading logic provides better user experience by showing visible loading indicators instead of empty fragments:
BackdropLoader
for pages with skeleton support to prevent blank pages and browser crashesGlobalSkeleton
as fallback for other casesThis addresses the issue mentioned in the comment about direct URL access causing problems.
77-88
: Excellent modal lazy loading implementation.The refactoring of modals to use
Suspense
with lazy-loaded components (LazyCreateTeamModal
andLazyJoinTeamModal
) provides several benefits:
- Code splitting for better performance
ModalSkeleton
fallback during loading- Cleaner component structure
This follows the established pattern of lazy loading heavy components across the application.
However, there's a pipeline failure indicating unused code. Let me verify the component usage:
#!/bin/bash # Check if the imports are actually used echo "=== Checking BackdropLoader usage ===" rg -A 2 -B 2 "BackdropLoader" echo -e "\n=== Checking GlobalSkeleton usage ===" rg -A 2 -B 2 "GlobalSkeleton" echo -e "\n=== Checking lazy modal usage ===" rg -A 2 -B 2 "LazyCreateTeamModal|LazyJoinTeamModal" echo -e "\n=== Checking ModalSkeleton usage ===" rg -A 2 -B 2 "ModalSkeleton"Also applies to: 91-98
apps/web/app/[locale]/(main)/settings/layout.tsx (1)
3-5
: LGTM! Good use of dynamic imports with skeleton fallbacks.The implementation correctly uses dynamic imports with SSR disabled for the settings menu component, which will improve initial page load performance.
Also applies to: 18-28
apps/web/core/components/common/loading-app.tsx (1)
1-85
: ```shell
#!/bin/bashSearch for direct imports of LoadingApp excluding its own file
grep -R "LoadingApp" -n . | grep -v "apps/web/core/components/common/loading-app.tsx"
Search for references to loading-app in dynamic imports or paths
grep -R "loading-app" -n . | grep -v "apps/web/core/components/common/loading-app.tsx"
</details> <details> <summary>apps/web/core/components/common/skeleton/timesheet-page-skeleton.tsx (2)</summary> `11-20`: **LGTM! Well-structured skeleton component.** The skeleton component properly integrates with MainLayout and provides comprehensive placeholders for all timesheet page sections. The JSDoc comment clearly describes the component's purpose and structure. --- `1-238`: ```shell #!/bin/bash # Inspect usage of TimesheetPageSkeleton in the timesheet-page-content component rg "TimesheetPageSkeleton" -n -C 3 apps/web/core/components/pages/timesheet/timesheet-page-content.tsx
apps/web/app/[locale]/(main)/settings/team/page.tsx (1)
27-91
: LGTM! Excellent implementation of lazy loading with proper skeleton fallbacks.The dynamic imports are correctly configured with SSR disabled and each component is properly wrapped in Suspense with appropriate skeleton fallbacks.
apps/web/core/components/common/skeleton/team-dashboard-page-skeleton.tsx (2)
11-21
: LGTM! Excellent skeleton implementation with clear documentation.The component provides a comprehensive skeleton that perfectly matches the team dashboard layout. The section markers (✅ SKELETON:) make it easy to understand which parts correspond to the actual page sections.
1-154
: Verify component integration in team dashboard.The pipeline indicates unused code. Please ensure this skeleton is properly imported and used in the team dashboard page.
#!/bin/bash # Description: Verify TeamDashboardPageSkeleton usage # Search for imports of TeamDashboardPageSkeleton rg "TeamDashboardPageSkeleton" --type tsx --type ts -A 2 -B 2 # Check the specific team dashboard page file mentioned in the summary fd -e tsx -e ts . | xargs rg -l "teamId.*page" | xargs rg -l "TeamDashboardPageSkeleton"apps/web/core/components/layouts/skeletons/team-member-profile-page-skeleton.tsx (1)
1-134
: Well-structured skeleton component with comprehensive coverageThe skeleton implementation is excellent - it properly integrates with
MainLayout
, preserves the page structure, and includes detailed placeholders for all UI sections. The consistent styling with pulse animations and dark mode support aligns well with the codebase patterns.Regarding the pipeline failure about unused code: This appears to be a false positive. According to the AI summary, this skeleton is actually used in the page component at
apps/web/app/[locale]/(main)/(teams)/team/[teamId]/[profileLink]/page.tsx
. The warning likely occurs because the component is dynamically imported, which static analysis tools sometimes miss.apps/web/core/components/common/skeleton/reports-page-skeleton.tsx (1)
1-153
: Comprehensive Reports page skeleton with excellent detailThe skeleton accurately represents the Reports page layout with proper placeholders for breadcrumbs, filters, multiple report tables, and pagination. The implementation maintains consistency with the design system and provides good visual feedback during loading.
The pipeline failure about unused code is expected for dynamically imported components. Based on the context, this skeleton is utilized in
apps/web/app/[locale]/(main)/reports/weekly-limit/page.tsx
through dynamic imports.apps/web/core/components/common/skeleton/time-activity-page-skeleton.tsx (1)
1-230
: Exceptionally detailed Time Activity skeleton implementationThis skeleton provides comprehensive coverage for the Time and Activity page with well-structured placeholders for statistics cards, daily activity sections, and complex table layouts. The use of the
Card
component and proper spacing creates an accurate representation of the actual page layout.The pipeline warning about unused code is consistent with other skeleton files and is likely due to dynamic imports used in the Time and Activity page component.
apps/web/core/components/common/skeleton/app-urls-dashboard-page-skeleton.tsx (1)
1-177
: Well-crafted App URLs Dashboard skeleton with chart supportThe skeleton effectively represents the dashboard layout including the productivity chart area, complex tables with icon placeholders, and detailed pagination controls. The attention to detail in representing different cell types (icons, progress bars, etc.) provides excellent visual continuity during loading.
As with other skeleton files, the unused code warning is expected due to the dynamic import pattern used throughout the application.
apps/web/app/[locale]/(main)/profile/[memberId]/page.tsx (4)
94-98
: Excellent placement of skeleton loading stateGreat attention to React hook rules by placing the skeleton return statement after all hooks. This prevents the "Rendered fewer hooks than expected" error that could occur if the early return happened before hook declarations. The comment clearly documents this important consideration.
145-153
: Proper Suspense boundary implementation for TimerGood use of Suspense with the
TimerSkeleton
fallback for the lazy-loaded Timer component. This provides a smooth loading experience for this frequently updated component.
171-172
: Nice UX enhancement with transitionsThe addition of hover states and transition effects improves the user experience when switching between activity filter tabs. The font weight change for the active tab provides clear visual feedback.
100-101
: ```shell
#!/bin/bashSearch for all occurrences of unwrappedParams.memberId in TS and TSX files
rg -n "unwrappedParams.memberId" -g ".ts" -g ".tsx"
Search for the specific condition members.length > 0 && !unwrappedParams.memberId across the codebase
rg -n "members.length > 0 && !unwrappedParams.memberId" -g ".ts" -g ".tsx"
</details> <details> <summary>apps/web/core/components/common/skeleton/rich-text-editor-skeleton.tsx (1)</summary> `109-109`: **Good refactoring to make the component more generic.** Renaming from `TaskDetailsAsideSkeleton` to `DetailsAsideSkeleton` improves reusability by removing the task-specific naming, allowing this skeleton to be used for other types of detail sidebars. </details> <details> <summary>apps/web/core/components/users/user-profile-plans.tsx (1)</summary> `157-173`: **Excellent performance optimization with memoized task counts.** The introduction of `totalTasksDailyPlansMap` effectively memoizes expensive task count calculations, preventing unnecessary recalculations on each render. The implementation correctly handles all tab types and user-specific filtering. </details> <details> <summary>apps/web/core/components/common/skeleton/timesheet-skeletons.tsx (1)</summary> `82-261`: **CSS class reordering looks good.** The CSS class reordering improves consistency without affecting functionality. </details> <details> <summary>apps/web/app/[locale]/(main)/calendar/page.tsx (3)</summary> `27-50`: **Well-implemented lazy loading with proper skeleton fallbacks.** The dynamic imports with `ssr: false` and skeleton loading states provide a smooth user experience while improving initial page load performance. --- `67-69`: **Good defensive programming with early return.** Returning the skeleton component when `activeTeam` is not available prevents potential runtime errors and provides a consistent loading experience. --- `81-88`: **Clean refactoring from switch to object map.** The object map pattern with memoization is more maintainable and performant than the switch statement. </details> <details> <summary>apps/web/core/components/common/skeleton/calendar-page-skeleton.tsx (1)</summary> `16-186`: **Well-structured skeleton component with comprehensive coverage** The skeleton accurately mimics the calendar page layout with proper integration into MainLayout, responsive design considerations, and dark mode support. The pulse animations and color schemes are consistent with the design system. </details> <details> <summary>apps/web/app/[locale]/(main)/reports/weekly-limit/page.tsx (1)</summary> `31-102`: **Excellent implementation of dynamic imports with skeleton fallbacks** The lazy loading strategy with dedicated skeleton components for each UI element provides granular loading states and improves initial page load performance. </details> <details> <summary>apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx (1)</summary> `16-174`: **Comprehensive kanban skeleton with pixel-perfect layout matching** The skeleton accurately represents all kanban UI elements including breadcrumbs, filters, columns, and task cards. The implementation maintains layout integrity during loading. </details> <details> <summary>apps/web/core/components/layouts/skeletons/team-tasks-page-skeleton.tsx (1)</summary> `16-155`: **Well-implemented team tasks skeleton with accurate layout representation** The skeleton component properly mimics the team tasks page structure including breadcrumbs, status badges, filters, task table, and pagination. The implementation follows established patterns. </details> <details> <summary>apps/web/core/components/daily-plan/all-plans.tsx (2)</summary> `28-204`: **Well-structured daily plans component with drag-and-drop functionality** The component effectively handles plan filtering, view modes, and drag-and-drop reordering. Good use of lazy loading for performance optimization. --- `75-76`: I wasn’t able to locate the component imports or the `handleDragAndDrop` definition yet. Let’s dump the top of the file around the `@ts-ignore` and find the helper signature so we can see the exact types in use: ```shell #!/bin/bash # Show imports and onDragEnd usage (first 200 lines) sed -n '1,200p' apps/web/core/components/daily-plan/all-plans.tsx # Find where handleDragAndDrop is defined, with a few lines of context rg -n "export const handleDragAndDrop" -A5 -B2 apps/web
apps/web/core/components/common/skeleton/settings-page-skeleton.tsx (2)
13-17
: Excellent component documentation and structureThe JSDoc comments clearly explain the component's purpose and structure. The integration with MainLayout without "swallowing it up" shows thoughtful design consideration.
1-192
: ```shell
#!/bin/bashDescription: Verify usage of exported skeleton components across all TS/TSX files without relying on predefined types
echo "=== Checking SettingsPageSkeleton usage ==="
rg "SettingsPageSkeleton" -g ".ts" -g ".tsx" -A2 -B2 || echo "No occurrences found"echo "=== Checking LeftSideSettingMenuSkeleton usage ==="
rg "LeftSideSettingMenuSkeleton" -g ".ts" -g ".tsx" -A2 -B2 || echo "No occurrences found"echo "=== Checking SettingsContentPageSkeleton usage ==="
rg "SettingsContentPageSkeleton" -g ".ts" -g ".tsx" -A2 -B2 || echo "No occurrences found"</details> <details> <summary>apps/web/core/components/common/global-skeleton.tsx (3)</summary> `1-12`: **Excellent refactoring with performance optimizations** The addition of the `"use client"` directive, lazy loading of `AppSidebarSkeleton`, and integration with `SidebarProvider` demonstrates good architectural improvements. The TypeScript interface for props is properly defined. --- `15-26`: **Well-structured layout integration** The integration with `AppContainer`, `SidebarProvider`, and responsive styling using the `fullWidthState` atom shows thoughtful design. The header styling maintains consistency with the existing design system. --- `52-83`: **Consistent skeleton structure with good modularity** The skeleton content is well-organized into logical sections (task input, content blocks) with consistent styling patterns. The use of `Container` components with `fullWidth` prop ensures responsive behavior. </details> <details> <summary>apps/web/core/components/optimized-components.tsx (2)</summary> `1-26`: **Excellent lazy loading implementation with proper skeleton fallbacks** The use of Next.js dynamic imports with `ssr: false` and skeleton loading components provides optimal performance and user experience. The import path restructuring using `then()` is correctly implemented. --- `28-51`: **Well-organized component priorities with appropriate skeletons** The prioritization comments (Priority 1: Profile, Priority 2: Task components marked as CRITICAL) help understand the loading importance. The skeleton fallbacks match the component complexity appropriately. </details> <details> <summary>apps/web/core/components/common/skeleton/settings-skeletons.tsx (4)</summary> `1-51`: **Excellent component structure and documentation** The `TeamSettingFormSkeleton` component is well-structured with clear JSDoc documentation. The layout matches typical form patterns with avatar, form fields, and action buttons. The styling is consistent with the design system. --- `57-98`: **Well-designed table skeleton structure** The `InvitationSettingSkeleton` accurately represents an invitation management interface with form and table elements. The grid layout and responsive design considerations are properly implemented. --- `154-186`: **Effective grid-based integration skeleton** The `IntegrationSettingSkeleton` uses an appropriate grid layout for integration cards. The card structure with icon, name, description, and toggle switch matches typical integration UI patterns. --- `248-274`: **Appropriate danger zone styling** The `DangerZoneTeamSkeleton` correctly uses red-themed backgrounds (`bg-red-50`, `dark:bg-red-900/20`) to indicate dangerous actions, maintaining visual consistency with typical danger zone UIs. </details> <details> <summary>apps/web/core/components/common/skeleton/time-activity-skeletons.tsx (3)</summary> `70-177`: **Comprehensive and well-structured activity table skeleton** The `ActivityTableSkeleton` component excellently captures the complexity of daily activity tables with proper header sections, member/project/task cells, and pagination. The structure demonstrates attention to detail in matching the real component layout. --- `183-274`: **Excellent weekly view table skeleton structure** The `TimeActivityTableSkeleton` properly represents weekly grouped data with summary statistics and comprehensive table rows. The Card wrapper and layout structure align well with typical weekly reporting interfaces. --- `1-282`: To confidently rule out false positives, let’s search all TS/TSX files without restricting by file type: ```shell #!/bin/bash # Search for any imports or references to the skeleton file or its exports echo "=== Searching for direct imports from time-activity-skeletons.tsx ===" rg "from ['\"].*time-activity-skeletons" -g "*.ts" -g "*.tsx" echo echo "=== Searching for individual component references ===" components=( TimeActivityHeaderSkeleton CardTimeAndActivitySkeleton ActivityTableSkeleton TimeActivityTableSkeleton ) for comp in "${components[@]}"; do echo "---- $comp ----" rg "$comp" -g "*.ts" -g "*.tsx" || echo "No references found for $comp" echo done
apps/web/core/components/common/skeleton/profile-component-skeletons.tsx (2)
1-411
: Excellent skeleton component implementation with comprehensive coverage.This file provides a well-structured set of skeleton components for profile-related UI elements. The implementation follows best practices with TypeScript interfaces, JSDoc documentation, consistent styling patterns, and proper dark mode support. The pixel-perfect approach to matching real component layouts will enhance user experience during loading states.
1-1
: Acknowledge unused code as part of progressive migration.The pipeline failure indicates unused code, which aligns with the team's progressive migration approach where skeleton infrastructure is added before full integration. This is expected behavior during the skeleton system rollout.
Based on retrieved learnings, the team uses a progressive migration approach where infrastructure components like these skeletons are added first before implementing the services that use them, resulting in intentionally unused code during intermediate migration states.
apps/web/core/components/common/skeleton/reports-component-skeletons.tsx (2)
1-233
: Well-implemented skeleton components for reports functionality.This file provides comprehensive skeleton components for reports-related UI elements. The implementation maintains consistency with the profile skeletons, follows TypeScript best practices, includes proper JSDoc documentation, and uses consistent styling patterns with dark mode support. The table skeletons accurately represent complex data structures with appropriate visual hierarchy.
1-1
: Acknowledge unused code as part of progressive migration.The pipeline failure for unused code is expected behavior during the skeleton system implementation phase. These components will be integrated as the lazy loading and progressive enhancement features are rolled out.
This aligns with the team's established progressive migration approach where skeleton infrastructure is added before full integration.
apps/web/core/components/pages/time-and-activity/activity-level-cell.tsx (2)
11-12
: Utility-class re-ordering is okayThe swap to
flex gap-2 items-center
is purely cosmetic and has no functional impact. Looks good.
27-29
: Same here – no functional changeJust acknowledging the identical cosmetic tweak in the “active” branch.
apps/web/core/components/projects/filters-card-modal.tsx (2)
240-241
:shadow="custom"
is silently ignored byEverCard
EverCard
only applies a shadow whenshadow === 'bigger'
; any other value is effectively a no-op. If you intended to get a different shadow style, either:-<EverCard className="w-full h-full border" shadow="custom"> +<EverCard className="w-full h-full border" shadow="bigger">or leave the prop off entirely and style via
className
.
136-138
: Status filter stores name instead of id
handleStatusChange
persistsstatus.value
(the name) while every other filter stores the entityid
.
This is fine if status names are globally unique and immutable, but it’s inconsistent and can break when two statuses share the same name or the name changes.Consider switching to IDs for parity with the other filters.
apps/web/core/components/duplicated-components/_progress-bar.tsx
Outdated
Show resolved
Hide resolved
apps/web/core/components/pages/timesheet/timesheet-page-content.tsx
Outdated
Show resolved
Hide resolved
apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx
Outdated
Show resolved
Hide resolved
apps/web/core/components/common/skeleton/settings-page-skeleton.tsx
Outdated
Show resolved
Hide resolved
Please review these files and clean up the unused code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
apps/web/core/components/duplicated-components/_progress-bar.tsx (1)
45-45
: Fix inconsistent progress value usage in style.You're using the raw
progress
prop instead of the parsedprogressValue
for the width style, which could cause layout issues whenprogress
is a string.- const progressStyle = useMemo(() => ({ width: progress }), [progress]); + const progressStyle = useMemo(() => ({ width: `${progressValue}%` }), [progressValue]);
🧹 Nitpick comments (3)
apps/web/core/components/duplicated-components/_progress-bar.tsx (3)
102-113
: Simplify segment generation by removing unnecessary Map usage.The Map-based approach adds unnecessary complexity without performance benefits. A simple array generation would be more readable and equally efficient.
- // Optimized memoization of segments with Map - const segments = useMemo(() => { - const segmentMap = new Map<number, { isActive: boolean; key: string }>(); - - for (let i = 0; i < totalSegments; i++) { - segmentMap.set(i, { - isActive: i < activeSegments, - key: `segment-${i}-${activeSegments}` // Stable key that only changes when necessary - }); - } - - return segmentMap; - }, [totalSegments, activeSegments]); + // Generate segments array + const segments = useMemo(() => { + return Array.from({ length: totalSegments }, (_, i) => ({ + isActive: i < activeSegments, + key: `segment-${i}-${activeSegments}` // Stable key that only changes when necessary + })); + }, [totalSegments, activeSegments]);
116-124
: Eliminate redundant memoization in segment rendering.The
renderedSegments
memoization creates an additional layer of complexity. You can render segments directly in the JSX since the segments array is already memoized.- // Optimized generation of segments - const renderedSegments = useMemo(() => { - const segmentElements: JSX.Element[] = []; - - for (const [, { isActive, key }] of segments) { - segmentElements.push(<ProgressSegment key={key} isActive={isActive} colorClass={colorClass} />); - } - - return segmentElements; - }, [segments, colorClass]);And update the JSX to:
- {renderedSegments} + {segments.map(({ isActive, key }) => ( + <ProgressSegment key={key} isActive={isActive} colorClass={colorClass} /> + ))}
46-52
: Consider reducing over-memoization for simple object creation.Memoizing simple object creation like
backgroundStyle
andcontainerClassName
may not provide significant performance benefits and adds complexity. These optimizations are likely premature.- const backgroundStyle = useMemo(() => ({ backgroundColor }), [backgroundColor]); - - // Memoization of CSS classes - const containerClassName = useMemo( - () => clsxm('flex justify-between items-center relative', className), - [className] - ); + const backgroundStyle = { backgroundColor }; + const containerClassName = clsxm('flex justify-between items-center relative', className);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
apps/web/app/[locale]/(main)/(teams)/team/tasks/page.tsx
(6 hunks)apps/web/core/components/common/skeleton/settings-page-skeleton.tsx
(1 hunks)apps/web/core/components/duplicated-components/_progress-bar.tsx
(3 hunks)apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx
(1 hunks)apps/web/core/components/pages/timesheet/timesheet-page-content.tsx
(6 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
- apps/web/app/[locale]/(main)/(teams)/team/tasks/page.tsx
- apps/web/core/components/layouts/skeletons/kanban-page-skeleton.tsx
- apps/web/core/components/common/skeleton/settings-page-skeleton.tsx
- apps/web/core/components/pages/timesheet/timesheet-page-content.tsx
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: NdekoCode
PR: ever-co/ever-teams#3887
File: apps/web/core/query/keys/index.ts:41-58
Timestamp: 2025-06-07T04:31:16.865Z
Learning: The team uses a progressive migration approach for React Query implementation, where query key infrastructure is added first before implementing the hooks/services that use them. This results in intentionally unused code during intermediate migration states.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3234
File: apps/web/components/pages/team/tasks/TaskTable.tsx:9-13
Timestamp: 2024-11-06T17:10:06.239Z
Learning: In the `TaskTable` component (`apps/web/components/pages/team/tasks/TaskTable.tsx`), we do not need to add error handling for task fetching when using `useTeamTasks()`.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3328
File: apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx:66-78
Timestamp: 2024-11-13T05:17:33.527Z
Learning: In the `UserTeamActivity` component (`apps/web/lib/features/team/user-team-card/user-team-card-activity.tsx`), the `overflow-hidden` class is intentionally applied only to the first `Tab.Panel` because the hidden overflow is needed when the sub-component has not yet been made visible. Applying `overflow-hidden` to the other `Tab.Panel` components is not required.
apps/web/core/components/duplicated-components/_progress-bar.tsx (9)
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:45.111Z
Learning: In `apps/web/components/ui/sidebar.tsx`, modifications to the keyboard shortcut implementation within `React.useEffect` can cause build errors. The current implementation has been validated by shadcn-ui and should remain unchanged.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:14-19
Timestamp: 2024-10-25T15:16:53.869Z
Learning: In `apps/web/components/ui/sidebar.tsx`, cookie configuration enhancements including `secure` and `httpOnly` flags, and making cookie name and max age configurable via environment variables, have already been implemented in previous commits.
Learnt from: CREDO23
PR: ever-co/ever-teams#3353
File: apps/web/lib/features/task/task-input.tsx:812-815
Timestamp: 2024-11-20T19:56:12.313Z
Learning: In `apps/web/lib/features/task/task-input.tsx`, prefer using `useRef` over `useState` for `assignees` in the `AssigneesSelect` component to prevent re-renders on change.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3199
File: apps/web/components/nav-main.tsx:74-90
Timestamp: 2024-10-28T17:28:53.268Z
Learning: In `apps/web/components/nav-main.tsx`, prefer to keep className styles inline instead of extracting repeated logic into shared classes.
Learnt from: CREDO23
PR: ever-co/ever-teams#3360
File: apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx:346-354
Timestamp: 2024-11-25T18:49:15.126Z
Learning: In `apps/web/components/pages/task/details-section/blocks/task-secondary-info.tsx`, within the `ProjectDropDown` component, both parent and child state should be synchronized for better UI updates, even in controlled mode. The `onChange` function carries the parent state, and `setSelected` maintains the selected state in the child component.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:132-217
Timestamp: 2024-10-25T15:17:29.070Z
Learning: Components derived from shadcn-ui have already been checked for performance optimizations; additional performance optimizations may not be necessary.
Learnt from: NdekoCode
PR: ever-co/ever-teams#3189
File: apps/web/components/ui/sidebar.tsx:77-87
Timestamp: 2024-10-25T15:15:35.107Z
Learning: In `apps/web/components/ui/sidebar.tsx`, keyboard shortcut accessibility has already been reviewed and approved by shadcn-ui; further suggestions in this area are unnecessary.
Learnt from: CREDO23
PR: ever-co/ever-teams#3185
File: apps/web/lib/settings/task-statuses-form.tsx:187-199
Timestamp: 2024-11-07T14:04:24.336Z
Learning: In `apps/web/lib/settings/task-statuses-form.tsx`, when generating colors in the `getRandomColor` function, prefer to keep generating them randomly to have more than five colors, even if it might affect color accessibility.
Learnt from: CREDO23
PR: ever-co/ever-teams#3626
File: apps/web/app/[locale]/projects/components/page-component.tsx:119-119
Timestamp: 2025-02-28T09:17:46.802Z
Learning: In the projects page component, filtering of projects based on the active team has been moved out of the useEffect hook that fetches organization projects, and is now handled in the pagination logic instead.
🧬 Code Graph Analysis (1)
apps/web/core/components/duplicated-components/_progress-bar.tsx (1)
apps/server-web/src/renderer/libs/utils/clsxm.ts (1)
clsxm
(5-7)
🪛 GitHub Actions: Knip Review - Cleanup Unused Code - WEB
apps/web/core/components/duplicated-components/_progress-bar.tsx
[error] 1-1: Unused code detected in this file.
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: deploy
- GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (1)
apps/web/core/components/duplicated-components/_progress-bar.tsx (1)
1-207
: To accurately detect usage, let’s rerun searches without the unsupported--type
flags and instead use glob patterns:#!/bin/bash echo "=== Checking for imports of progress bar components ===" rg "from .*_progress-bar" -g "*.tsx" -g "*.ts" -A 2 -B 2 echo "=== Checking for usage of ProgressBar ===" rg -w "ProgressBar" -g "*.tsx" -g "*.ts" -A 2 -B 2 echo "=== Checking for usage of SegmentedProgressBar ===" rg -w "SegmentedProgressBar" -g "*.tsx" -g "*.ts" -A 2 -B 2
🚀 Add Complete Loading Skeleton System Across Application
Add comprehensive loading skeletons to improve user experience across all major pages while data loads.
Closed #3789
Description
Please describe what you did, and why.
This PR adds a complete loading skeleton system across the entire application to make the app feel faster and smoother for users.
The skeleton screens look like the real content but are gray animated placeholders. When real data loads, it smoothly replaces the skeletons across the entire application.
What Was Changed
Major Changes
Here are the major changes that this PR adds:
New Complete Page Skeletons:
AllTeamsPageSkeleton
component for the all teams page (/all-teams
)TeamMemberProfilePageSkeleton
component for team member profile pages (/team/[teamId]/[profileLink]
)TeamTasksPageSkeleton
component for team tasks page (/team/tasks
)KanbanPageSkeleton
component for kanban board page (/kanban
),
timesheet` pagesEnhanced Existing Pages with Skeleton Integration:
/calendar
) - Added lazy loading with skeletons for calendar components/reports/weekly-limit
) - Added comprehensive skeleton and components optimization system for all componentsComprehensive Component-Level Skeletons:
Minor Changes
Here are the minor changes that this PR adds:
bg-[#F0F0F0] dark:bg-[#353741] animate-pulse
)How to Test This PR
Please explain clearly how to test the changes locally:
yarn web:dev
http://localhost:3030
Team Pages:
/all-teams
- Should show team grid skeleton with header and member cards/team/[teamId]/[profileLink]
- Should show profile skeleton with breadcrumb, email, and member grid/team/tasks
- Should show task table skeleton with breadcrumb, filters, and table structureKanban Page:
/kanban
- Should show kanban board skeleton with columns and cardsCalendar Page:
/calendar
- Should show calendar skeleton with date picker and calendar gridReports Page:
/reports/weekly-limit
- Should show reports skeleton with filters, tables, and paginationIf you have slow internet, you can see the skeletons better by:
Screenshots (if needed)
Current screenshots
Screen.Recording.2025-06-26.at.18.52.23.mov
Now users see animated gray skeletons that match each page layout while data loads, then smooth transition to real content across the entire application.
Related Issues
Please list related issues, tasks or discussions:
Type of Change
✅ Checklist
Please confirm you did the following before asking for review:
Notes for the Reviewer (Optional)
Add here any context, help, or known issues for the person reviewing:
apps/web/core/components/layouts/skeletons/
folderapps/web/core/components/common/skeleton/
folderSummary by CodeRabbit
New Features
Refactor
Style
Chores
Documentation