-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
React Essentials - Created new components.
- Loading branch information
Showing
7 changed files
with
98 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
react-practice/main-project/src/ReactEssentials/components/ReactEssentialsCoreConcepts.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import { CORE_CONCEPTS } from '../data/data.js' | ||
|
||
import ReactEssentialsCoreConcept from './ReactEssentialsCoreConcept.jsx' | ||
|
||
const ReactEssentialsCoreConcepts = () => { | ||
return ( | ||
<section id="core-concepts"> | ||
<h2>Core Concepts</h2> | ||
<ul> | ||
{CORE_CONCEPTS.map(concept => <ReactEssentialsCoreConcept key={concept.title} { ...concept } />)} | ||
</ul> | ||
</section> | ||
) | ||
} | ||
|
||
export default ReactEssentialsCoreConcepts |
46 changes: 46 additions & 0 deletions
46
react-practice/main-project/src/ReactEssentials/components/ReactEssentialsExamples.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
import { useState } from 'react' | ||
|
||
import { EXAMPLES } from '../data/data.js' | ||
|
||
import ReactEssentialsTabButton from './ReactEssentialsTabButton.jsx' | ||
import ReactEssentialsTabs from './ReactEssentialsTabs.jsx' | ||
import ReactEssentialsSection from './ReactEssentialsSection.jsx' | ||
|
||
const ReactEssentialsExample = () => { | ||
const [selectedTopic, setSelectedTopic] = useState() | ||
|
||
const handleSelect = ( selectedButton ) => { | ||
setSelectedTopic(selectedButton) | ||
} | ||
|
||
let tabContent = <p> Please, select a topic / tab.</p> | ||
|
||
if ( selectedTopic ) { | ||
tabContent = ( | ||
<div id="tab-content"> | ||
<h3>{ EXAMPLES[selectedTopic].title }</h3> | ||
<p>{ EXAMPLES[selectedTopic].description }</p> | ||
<code>{ EXAMPLES[selectedTopic].code }</code> | ||
</div> | ||
) | ||
} | ||
|
||
return ( | ||
<ReactEssentialsSection id="examples" title="Examples"> | ||
<ReactEssentialsTabs | ||
ButtonsContainer="menu" | ||
buttons={ | ||
<> | ||
<ReactEssentialsTabButton isSelected={selectedTopic === 'components'} onClick={() => handleSelect('components')}>Components</ReactEssentialsTabButton> | ||
<ReactEssentialsTabButton isSelected={selectedTopic === 'jsx'} onClick={() => handleSelect('jsx')}>JSX</ReactEssentialsTabButton> | ||
<ReactEssentialsTabButton isSelected={selectedTopic === 'props'} onClick={() => handleSelect('props')}>Props</ReactEssentialsTabButton> | ||
<ReactEssentialsTabButton isSelected={selectedTopic === 'state'} onClick={() => handleSelect('state')}>State</ReactEssentialsTabButton> | ||
</>} | ||
> | ||
{ tabContent } | ||
</ReactEssentialsTabs> | ||
</ReactEssentialsSection> | ||
) | ||
} | ||
|
||
export default ReactEssentialsExample |
12 changes: 12 additions & 0 deletions
12
react-practice/main-project/src/ReactEssentials/components/ReactEssentialsSection.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
|
||
const ReactEssentialsSection = ({title, children, ...props}) => { | ||
return ( | ||
<section {...props}> | ||
<h2>{title}</h2> | ||
{children} | ||
</section> | ||
) | ||
|
||
} | ||
|
||
export default ReactEssentialsSection |
4 changes: 2 additions & 2 deletions
4
react-practice/main-project/src/ReactEssentials/components/ReactEssentialsTabButton.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
react-practice/main-project/src/ReactEssentials/components/ReactEssentialsTabs.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
|
||
const ReactEssentialsTabs = ({ children, buttons, ButtonsContainer = 'menu' }) => { | ||
//const ButtonsContainer = buttonsContainer | ||
|
||
return ( | ||
<> | ||
<ButtonsContainer> | ||
{ buttons } | ||
</ButtonsContainer> | ||
|
||
{ children } | ||
</> | ||
) | ||
} | ||
|
||
export default ReactEssentialsTabs |
45 changes: 4 additions & 41 deletions
45
react-practice/main-project/src/ReactEssentials/pages/ReactEssentialsPage.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters