Skip to content

Commit

Permalink
single framework component
Browse files Browse the repository at this point in the history
  • Loading branch information
dhanukanuwan committed Mar 17, 2024
1 parent 344d77c commit 19d1515
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 30 deletions.
36 changes: 6 additions & 30 deletions src/partials/frameworks.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
import React, {useState} from 'react';
import frameworkData from '../json';
import SingleFramework from './single-framework';

const Frameworks = () => {

const [selectedFramework, setSelectedFramework] = useState({});

const handleFrameworkSelect = ( item ) => {
setSelectedFramework(item);
}

return(
<div className="container">

Expand All @@ -27,36 +32,7 @@ const Frameworks = () => {
}

{ selectedFramework && Object.keys(selectedFramework).length !== 0 &&
<>
<div className="row">
<div className="col-12 my-5">
<div className="mb-4">
<span className="pointer text-decoration-hover go-back" onClick={() => setSelectedFramework({})}>Back</span>
</div>
<h2>{selectedFramework.name}</h2>
</div>
</div>
<div className="row">
{ selectedFramework.components && selectedFramework.components.length > 0 &&
<>
{selectedFramework.components.map( (component, i ) => {
return (
<div className="col-12 col-lg-4 mb-4" key={i}>
<div className="card">
<div className="card-header">{component.name}</div>
<div className="card-body">
<h5 className="card-title">Special title treatment</h5>
<p className="card-text">With supporting text below as a natural lead-in to additional content.</p>
<button type="button" className="btn btn-primary">Go somewhere</button>
</div>
</div>
</div>
)
})}
</>
}
</div>
</>
<SingleFramework framework={selectedFramework} onSelect={(data) => handleFrameworkSelect(data)} />
}

</div>
Expand Down
42 changes: 42 additions & 0 deletions src/partials/single-framework.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import React from 'react';

const SingleFramework = (props) => {

const { framework, onSelect} = props;

return(
<>
<div className="row">
<div className="col-12 my-5">
<div className="mb-4">
<span className="pointer text-decoration-hover go-back" onClick={() => onSelect({})}>Back</span>
</div>
<h2>{framework.name}</h2>
</div>
</div>
<div className="row">
{ framework.components && framework.components.length > 0 &&
<>
{framework.components.map( (component, i ) => {
return (
<div className="col-12 col-lg-4 mb-4" key={i}>
<div className="card">
<div className="card-header">{component.name}</div>
<div className="card-body">
<h5 className="card-title">Special title treatment</h5>
<p className="card-text">With supporting text below as a natural lead-in to additional content.</p>
<button type="button" className="btn btn-primary">Go somewhere</button>
</div>
</div>
</div>
)
})}
</>
}
</div>
</>
);

}

export default SingleFramework;

0 comments on commit 19d1515

Please sign in to comment.