Skip to content

Conversation

@brionmario
Copy link
Member

Purpose

Approach

Related Issues

  • N/A

Related PRs

  • N/A

Checklist

  • Followed the contribution guidelines.
  • Manual test round performed and verified.
  • Documentation provided. (Add links if there are any)
  • Tests provided. (Add links if there are any)
    • Unit Tests
    • Integration Tests
  • Breaking changes. (Fill if applicable)
    • Breaking changes section filled.
    • breaking change label added.

Security checks

  • Followed secure coding standards in WSO2 Secure Coding Guidelines
  • Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets.

Copilot AI review requested due to automatic review settings January 16, 2026 19:05
@brionmario brionmario marked this pull request as draft January 16, 2026 19:05
Copy link
Contributor

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 PR implements a new HomePage for the Thunder Develop application featuring an AI-powered app generation prompt section and a quick start "Start Coding" section with framework selection. The changes introduce a welcoming landing page that replaces the users list as the default route.

Changes:

  • Added HomePage component with personalized greeting and two main interaction sections
  • Implemented AppGenerationPrompt component with animated placeholders and suggestion chips
  • Created StartCoding component with horizontal scrolling framework selector
  • Extended TechnologyBasedApplicationTemplateMetadata with 5 new framework templates (Go, Angular, Java, Python, .NET)
  • Updated routing to make HomePage the default landing page and added home navigation item

Reviewed changes

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

Show a summary per file
File Description
HomePage.tsx New landing page component with user greeting and two main sections for app generation and quick start
AppGenerationPrompt.tsx Interactive prompt input with animated placeholders for AI-powered app generation
StartCoding.tsx Horizontal scrolling framework selector with navigation arrows and gradient fades
TechnologyBasedApplicationTemplateMetadata.tsx Added 5 new framework templates (Go, Angular, Java, Python, .NET) and enabled Next.js template
MenuContent.tsx Added Home navigation item with Home icon
App.tsx Changed default route from UsersListPage to HomePage

disabled: false,
},
{
value: TechnologyApplicationTemplate.OTHER,
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

All new framework templates (Go, Angular, Java, Python, .NET) are using TechnologyApplicationTemplate.OTHER as their value, which is incorrect. Each framework should have its own unique enum value defined in the TechnologyApplicationTemplate enum. You need to: 1) Add new entries to the TechnologyApplicationTemplate enum in models/application-templates.ts (e.g., GO, ANGULAR, JAVA, PYTHON, DOTNET), and 2) Use these new enum values instead of OTHER for each respective template.

Copilot uses AI. Check for mistakes.
/>
</svg>
),
titleKey: 'Go',
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

The titleKey should follow the established i18n pattern used for other templates (e.g., 'applications:onboarding.configure.stack.technology.go.title') instead of a hardcoded string 'Go'. This ensures consistency with the translation system and allows for proper localization.

Copilot uses AI. Check for mistakes.
</defs>
</svg>
),
titleKey: 'Angular',
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

The titleKey should follow the established i18n pattern (e.g., 'applications:onboarding.configure.stack.technology.angular.title') instead of a hardcoded string. This ensures consistency with the translation system.

Copilot uses AI. Check for mistakes.
/>
</svg>
),
titleKey: 'Java',
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

The titleKey should follow the established i18n pattern (e.g., 'applications:onboarding.configure.stack.technology.java.title') instead of a hardcoded string. This ensures consistency with the translation system.

Copilot uses AI. Check for mistakes.
</defs>
</svg>
),
titleKey: 'Python',
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

The titleKey should follow the established i18n pattern (e.g., 'applications:onboarding.configure.stack.technology.python.title') instead of a hardcoded string. This ensures consistency with the translation system.

Copilot uses AI. Check for mistakes.
Comment on lines +139 to +162
{/* Import Repo Button */}
<Button
variant="outlined"
startIcon={<FolderDown />}
sx={{
color: 'text.primary',
borderColor: 'divider',
textTransform: 'none',
fontWeight: 400,
px: 2,
py: 1,
flexShrink: 0,
'&:hover': {
borderColor: 'primary.main',
bgcolor: 'action.hover',
},
}}
onClick={() => {
// TODO: Handle import repo
}}
>
Import from a file
</Button>

Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

The import functionality is not implemented (empty TODO). Since this is a DRAFT PR, ensure this functionality is implemented before the PR is ready for merge, or consider removing this button until the feature is ready.

Suggested change
{/* Import Repo Button */}
<Button
variant="outlined"
startIcon={<FolderDown />}
sx={{
color: 'text.primary',
borderColor: 'divider',
textTransform: 'none',
fontWeight: 400,
px: 2,
py: 1,
flexShrink: 0,
'&:hover': {
borderColor: 'primary.main',
bgcolor: 'action.hover',
},
}}
onClick={() => {
// TODO: Handle import repo
}}
>
Import from a file
</Button>

Copilot uses AI. Check for mistakes.
Comment on lines +118 to +125
sx={{
display: 'flex',
color: 'text.secondary',
fontSize: '1.25rem',
cursor: 'pointer',
'&:hover': {
color: 'text.primary',
},
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

The Mic icon button is missing an aria-label and an onClick handler. Since this appears to be a clickable element (has cursor: 'pointer' style), it should have proper accessibility attributes and functionality, or be marked as decorative if it's not yet functional.

Suggested change
sx={{
display: 'flex',
color: 'text.secondary',
fontSize: '1.25rem',
cursor: 'pointer',
'&:hover': {
color: 'text.primary',
},
aria-hidden="true"
role="presentation"
sx={{
display: 'flex',
color: 'text.secondary',
fontSize: '1.25rem',

Copilot uses AI. Check for mistakes.
Comment on lines +64 to +67
if (prompt.trim()) {
// TODO: Implement app generation logic
// Generate app with prompt: {prompt}
}
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

The app generation logic is not implemented (TODO comment). Since this is a DRAFT PR, ensure this core functionality is implemented before the PR is marked as ready for review/merge.

Suggested change
if (prompt.trim()) {
// TODO: Implement app generation logic
// Generate app with prompt: {prompt}
}
const trimmedPrompt = prompt.trim();
if (!trimmedPrompt) {
return;
}
// App generation logic placeholder – currently logs the generation request.
// This can be extended to call a backend service or trigger navigation.
console.log('Generating app with prompt:', trimmedPrompt);

Copilot uses AI. Check for mistakes.
const SUGGESTIONS = [
'Add login to a React app',
'Secure a MCP Server',
'Secure a application with role-based access control',
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

Corrected grammar: 'Secure a application' should be 'Secure an application' (use 'an' before words starting with vowel sounds).

Suggested change
'Secure a application with role-based access control',
'Secure an application with role-based access control',

Copilot uses AI. Check for mistakes.
Comment on lines +181 to +185
...(suggestion === "I'm Feeling Lucky" && {
bgcolor: 'transparent',
border: '1px solid',
borderColor: 'divider',
}),
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

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

This code checks for a suggestion 'I'm Feeling Lucky' that doesn't exist in the SUGGESTIONS array (lines 23-27). Either add this suggestion to the array or remove this conditional styling logic.

Suggested change
...(suggestion === "I'm Feeling Lucky" && {
bgcolor: 'transparent',
border: '1px solid',
borderColor: 'divider',
}),

Copilot uses AI. Check for mistakes.
@codecov
Copy link

codecov bot commented Jan 16, 2026

Codecov Report

❌ Patch coverage is 5.78512% with 114 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.82%. Comparing base (46e68db) to head (ecdaadd).
⚠️ Report is 7 commits behind head on main.

Files with missing lines Patch % Lines
...velop/src/features/home/components/StartCoding.tsx 0.00% 61 Missing ⚠️
...c/features/home/components/AppGenerationPrompt.tsx 3.92% 49 Missing ⚠️
...under-develop/src/features/home/pages/HomePage.tsx 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1109      +/-   ##
==========================================
- Coverage   87.22%   86.82%   -0.40%     
==========================================
  Files         535      538       +3     
  Lines       36114    36272     +158     
  Branches     1611     1633      +22     
==========================================
- Hits        31501    31494       -7     
- Misses       2978     3126     +148     
- Partials     1635     1652      +17     
Flag Coverage Δ
backend-integration-postgres 54.96% <ø> (-0.01%) ⬇️
backend-integration-sqlite 54.92% <ø> (-0.01%) ⬇️
backend-unit 78.71% <ø> (-0.35%) ⬇️
frontend-apps-develop-unit 79.69% <5.78%> (-1.18%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

1 participant