Skip to content

Commit

Permalink
add task solution
Browse files Browse the repository at this point in the history
  • Loading branch information
Your NameNatalia committed Nov 18, 2023
1 parent f3b767d commit 5cefa87
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 34 deletions.
20 changes: 4 additions & 16 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import './App.scss';
import { Person } from './components/Person/Person';

export const misha = {
name: 'Misha',
Expand All @@ -25,21 +26,8 @@ export const alex = {

export const App = () => (
<div className="App">
<section className="Person">
<h2 className="Person__name">My name is Misha</h2>
<p className="Person__age">I am 37</p>
<p className="Person__partner">Natasha is my wife</p>
</section>

<section className="Person">
<h2 className="Person__name">My name is Olya</h2>
<p className="Person__partner">Maksym is my husband</p>
</section>

<section className="Person">
<h2 className="Person__name">My name is Alex</h2>
<p className="Person__age">I am 25</p>
<p className="Person__partner">I am not married</p>
</section>
<Person person={misha} />
<Person person={olya} />
<Person person={alex} />
</div>
);
17 changes: 0 additions & 17 deletions src/App.scss
Original file line number Diff line number Diff line change
@@ -1,20 +1,3 @@
iframe {
display: none;
}

.Person {
width: fit-content;
margin-bottom: 16px;
padding: 8px;
border: 1px solid #000;
border-radius: 8px;

&__name {
margin-top: 8px;
}

&__age {
color: #00f;
font-weight: bold;
}
}
42 changes: 41 additions & 1 deletion src/components/Person/Person.jsx
Original file line number Diff line number Diff line change
@@ -1 +1,41 @@
// export const Person = ({ person }) => ();
import './Person.scss';

const MALE = 'm';
const WIFE = 'wife';
const HUSBAND = 'husband';

export const Person = ({ person }) => {
const {
name,
age,
sex,
isMarried,
partnerName,
} = person;

const statusPartner = sex === MALE
? WIFE
: HUSBAND;

const marriageStatusInfo = isMarried
? `${partnerName} is my ${statusPartner}`
: 'I am not married';

return (
<section className="Person">
<h2 className="Person__name">
{`My name is ${name}`}
</h2>

{Boolean(age) && (
<p className="Person__age">
{`I am ${age}`}
</p>
)}

<p className="Person__partner">
{marriageStatusInfo}
</p>
</section>
);
};
16 changes: 16 additions & 0 deletions src/components/Person/Person.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.Person {
width: fit-content;
margin-bottom: 16px;
padding: 8px;
border: 1px solid #000;
border-radius: 8px;

&__name {
margin-top: 8px;
}

&__age {
color: #00f;
font-weight: bold;
}
}

0 comments on commit 5cefa87

Please sign in to comment.