Skip to content

solved#4270

Open
vladiksanl wants to merge 2 commits intomate-academy:masterfrom
vladiksanl:develop
Open

solved#4270
vladiksanl wants to merge 2 commits intomate-academy:masterfrom
vladiksanl:develop

Conversation

@vladiksanl
Copy link

No description provided.

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

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

Review Summary

I am requesting changes because there are still a few core requirements not met that can break tests and task compliance. First, App.jsx is importing Welcome, Header, and Article as named imports while the components are meant to be export default; you need to switch to default imports like import Welcome from './components/Welcome/Welcome'; so the imports match the exports and tests can resolve them correctly. Second, the JSX structure in App.jsx currently renders <Welcome />, <Header />, and <Article /> as siblings and then has a self-closing <main className="app" /> after them; the requirement is that these components are wrapped inside <main className="app"> ... </main>, and you should also remove the unnecessary {' '} fragments. Third, App.css still contains commented-out, component-specific styles (Header, Article, Navigation) instead of having them fully moved into their respective component CSS files; only global rules (like *, html, body, iframe) should remain in App.css. Finally, navigation-related styles are still inside Header.css rather than a dedicated Navigation component folder and CSS, which the task explicitly asks you to create. Once you fix the imports, wrap the components correctly in <main className="app">, move all remaining component styles out of App.css, and separate navigation into its own component/CSS, your solution will align well with the requirements—your existing component structure and per-component CSS are otherwise on the right track.


✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨

Important

Fix the issues, commit the changes, and then re-request my review using the Re-request review button2 in the Reviewers tab.

Tip

If you have any comments about this review, please leave a message in the Add a comment section below and mention me with the @mateacademy-ai-mentor tag3.
I will read your message during my next review of your pull request. Please do not reply directly to my comments, as that feature is not supported yet.

Caution

Do not close the pull request until the review is complete. Closing it early can lead to unexpected behavior and disrupt the review process.

Footnotes

  1. Rate AI review example

  2. Re-request AI review example

  3. Add AI review comments example

src/App.jsx Outdated
Comment on lines 3 to 5
import { Welcome } from './components/Welcome/Welcome';
import { Header } from './components/Header/Header';
import { Article } from './components/Article/Article';

Choose a reason for hiding this comment

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

You're importing the components with named imports ({ Welcome }, { Header }, { Article }). The task's Technical Constraints say: "Tests expect you to use export default for all the components." If those component files export default, import them as default imports, e.g. import Welcome from './components/Welcome/Welcome'.

src/App.jsx Outdated
Comment on lines 10 to 13
<div>
{' '}
<Welcome /> <Header /> <Article /> <main className="app" />{' '}
</div>

Choose a reason for hiding this comment

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

The current JSX places <Welcome />, <Header />, and <Article /> as siblings and uses a self-closing <main className="app" /> after them. The Core Functional Requirements say: "Split the App.js into components based on CSS blocks." and the Implementation Details say: "App.js must be decomposed so that the existing Article, Header, and Welcome folders inside ./src/components/ with required files are used." Wrap these components inside <main className="app"> ... </main> so the app container (and related CSS block) actually contains these components. Also remove the unnecessary {' '} fragments.

src/App.css Outdated
}

.header {
/* .header {

Choose a reason for hiding this comment

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

This file still contains the .header block commented out here. The task requires that you "Split the CSS code too, corresponding to the decomposed components." Move header-related styles into the Header component folder (for example ./src/components/Header/Header.css).

This violates checklist item #2: "Create separate folder per component, where you can put all files (styles, components, and so on)."

src/App.css Outdated
.navigation__link:focus {
opacity: 1;
}
} */

Choose a reason for hiding this comment

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

This closing comment indicates several component rules are commented together inside App.css. Rather than leaving component styles commented in App.css, extract them into component-level CSS files and import them from the corresponding components. Keep App.css for global styles only.

src/App.css Outdated
} */

.article {
/* .article {

Choose a reason for hiding this comment

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

The .article block starts commented here — move these .article rules into the Article component's CSS (for example ./src/components/Article/Article.css) to satisfy the requirement to split CSS per component and folder.

src/App.css Outdated
margin: 3.5em auto;
}
}
} */

Choose a reason for hiding this comment

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

This closes the commented .article block. After moving the article styles out, remove these commented blocks so App.css contains only global rules (e.g., iframe, *, html, body).


// Add a default export statement for Welcome component to use it in the other files

export const Welcome = () => {

Choose a reason for hiding this comment

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

This file uses a named export: export const Welcome = () => { ... }. The task's Technical Constraints state that tests expect export default for all components — define the component as const Welcome = () => { ... } and export it as the default to avoid import mismatches.

Comment on lines 23 to 31
.navigation__link {
display: inline-block;
outline: none;
text-decoration: none;
opacity: 0.7;
padding: 0 0.5em;
color: black;
transition: opacity 0.2s ease-in-out;
}

Choose a reason for hiding this comment

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

This file contains navigation-related styles (.navigation__link) which violates the project requirement to "Split the CSS code too, corresponding to the decomposed components." Move navigation styles into a separate Navigation CSS file associated with a Navigation component (create a Navigation folder under ./src/components/).

Comment on lines 33 to 35
.navigation__link:hover,
.navigation__link:focus {
opacity: 1;

Choose a reason for hiding this comment

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

Hover/focus rules for .navigation__link are also part of navigation styling and should be moved along with the base .navigation__link rules to the Navigation component's CSS to satisfy: "Move the navigation into a Navigation component (you may also create a folder for the Navigation component and move navigation there)."

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

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

Review Summary

Your solution is approved because all core requirements appear to be implemented correctly and there are no critical blockers. You’ve split App.jsx into separate Welcome, Header, Article, and Navigation components, each in its own folder, and each component correctly imports its own CSS and uses a default export. The Navigation styles have been moved into their own Navigation.css, and Header.jsx properly composes the Navigation component instead of mixing navigation markup/styles directly into the header. The JSX structure in App.jsx is valid, main wraps the components, and there are no obvious syntax or runtime issues in the reviewed files.

The remaining points are non-blocking but worth addressing on your own: make sure you’ve actually run npm test and check that all tests pass, and update the PR description with the correct demo link if your instructions require it. You can also optionally clean up instructional comments at the top of component files and consider using more consistent units in Welcome.css (e.g., rem instead of pt). Overall, this is a solid, clean implementation of the component decomposition and per-component CSS requirements—well done.


✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨

Footnotes

  1. Rate AI review example

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