Skip to content

Neo v3.0.4-2#4

Merged
romdalf merged 25 commits intomainfrom
neo-v3
Nov 29, 2025
Merged

Neo v3.0.4-2#4
romdalf merged 25 commits intomainfrom
neo-v3

Conversation

@romdalf
Copy link
Copy Markdown
Member

@romdalf romdalf commented Nov 24, 2025

This pull request introduces a new Tasks page to the application, providing a comprehensive interface for viewing, managing, and cancelling background tasks. It also refines the display of share and task statuses with visually distinct badges and icons, and improves the user experience in several data tables. The most important changes are grouped below.

Tasks Page and Table Functionality:

  • Added a new TasksTable component (src/components/data-tables/tasksT.tsx) that displays a list of tasks with status badges, duration calculation, detailed dialogs, and the ability to cancel pending or running tasks. This includes UI elements for task details, result, metadata, and error display.
  • Integrated the Tasks page into the application routes and navigation by importing the Tasks component and adding a /tasks route in src/App.tsx. The route passes task data and handlers for fetching and deleting tasks. [1] [2]

Status Badge and Icon Improvements:

  • Refactored the Shares table to use new getStatusBadge and getStatusIcon helper functions, providing consistent, color-coded badges and icons for different share statuses in both the main table and details dialog. [1] [2] [3] [4] [5]
  • Implemented similar badge and icon logic for task statuses in the new TasksTable for visual consistency.

User Table Enhancement:

  • Improved the Users table to gracefully handle users with a missing last_login value, displaying a dash instead of an invalid date.

Other Changes:

  • Bumped the package version from 3.0.4-1 to 3.0.4-2 in package.json to reflect the new features and improvements.
  • Removed an outdated code comment in the App component for clarity. [1] [2]

Copilot AI review requested due to automatic review settings November 24, 2025 16:31
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request introduces a comprehensive Tasks management page to the application and refactors the API service architecture into modular, maintainable client classes. The changes include enhanced status visualization with color-coded badges and icons across multiple tables, improved null-handling for user data, and better separation of concerns in the API layer.

Key changes:

  • Refactored monolithic NeoApiService into modular API client classes (auth, system, users, shares, files, operations, monitoring, tasks, analytics, helm) extending a shared BaseApiClient
  • Added new Tasks page with statistics dashboard and comprehensive task management capabilities including viewing details and cancelling running/pending tasks
  • Enhanced UI consistency with new getStatusBadge and getStatusIcon helper functions for both Shares and Tasks tables

Reviewed changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/services/neo-api.tsx Refactored into a facade pattern delegating to specialized API clients
src/services/api/base.ts New base client with shared request handling and authentication error management
src/services/api/*.ts New modular API clients for auth, system, users, shares, files, operations, monitoring, tasks, analytics, and helm
src/services/models.tsx Updated TasksResponse and TaskStatisticsResponse models with nullable fields and result structure changes
src/components/pages/tasks.tsx New Tasks page with statistics cards and refresh functionality
src/components/data-tables/tasksT.tsx New TasksTable component with status badges, detail dialogs, and task cancellation
src/components/data-tables/sharesT.tsx Refactored to use status badge/icon helpers for consistent visualization
src/components/data-tables/usersT.tsx Added null handling for missing last_login values
src/hooks/useNeoApi.ts Added handleFetchTasks and handleDeleteTask handlers
src/App.tsx Added /tasks route with task data and handlers
src/components/sidebars/sidebar-content.tsx Added Tasks navigation item with IconListCheck icon
package.json Version bump to 3.0.4-2

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

Comment thread src/components/data-tables/tasksT.tsx
Comment thread src/services/neo-api.tsx
Comment thread src/services/api/file.ts Outdated
Comment thread src/components/data-tables/tasksT.tsx
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 43 out of 44 changed files in this pull request and generated 6 comments.


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

Comment thread src/hooks/useNeoApi.ts Outdated
Comment thread src/hooks/useNeoApi.ts Outdated
Comment thread src/hooks/useNeoApi.ts
Comment thread src/hooks/useNeoApi.ts
Comment thread src/components/pages/files.tsx Outdated
Comment thread src/components/pages/monitoring.tsx Outdated
@romdalf romdalf requested a review from Copilot November 29, 2025 15:03
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 42 out of 43 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/components/data-tables/monitoringT.tsx:188

  • [nitpick] Optional chaining with nullish coalescing might be more concise and consistent with the pattern used elsewhere in this file.

Current:

value={((graphRateLimit?.requests_remaining ?? 0) / ((graphRateLimit?.requests_made ?? 0) + (graphRateLimit?.requests_remaining ?? 1))) * 100}

Consider:

value={((graphRateLimit?.requests_remaining ?? 0) / ((graphRateLimit?.requests_made ?? 0) + (graphRateLimit?.requests_remaining ?? 0) || 1)) * 100}

This avoids potential division by non-zero when requests_remaining is 0.


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

Comment thread src/components/pages/files.tsx Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 42 out of 43 changed files in this pull request and generated 1 comment.


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

Comment thread src/services/neo-api.tsx Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 45 out of 46 changed files in this pull request and generated no new comments.


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

@romdalf romdalf merged commit 370304a into main Nov 29, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants