Skip to content
Snippets Groups Projects
Commit a28be14e authored by Aggarwal Himanshu's avatar Aggarwal Himanshu
Browse files

Make Tabs component modular

parent c21892c2
No related branches found
No related tags found
2 merge requests!17Merge develop into main,!15Modular components
import classNames from "classnames"; import classNames from "classnames";
import React, { useState } from "react"; import React from "react";
export function Tabs({ children }) { function Tab({ id, content, activeTab, onClick }) {
const [tab, setTab] = useState("card-view");
return (
<div>
<div className="flex align-middle w-fit bg-dark-600 rounded-3xl py-2 px-2">
{children.map((child) => {
const { id } = child.props;
return (
<Tab key={id} {...child.props} activeTab={tab} onClick={setTab} />
);
})}
</div>
{children.map((child) => {
if (child.props.id !== tab) return undefined;
return child.props.children;
})}
</div>
);
}
export function Tab({ id, content, activeTab, onClick }) {
return ( return (
<button <button
className={classNames( className={classNames(
...@@ -37,3 +16,5 @@ export function Tab({ id, content, activeTab, onClick }) { ...@@ -37,3 +16,5 @@ export function Tab({ id, content, activeTab, onClick }) {
</button> </button>
); );
} }
export default Tab;
import React, { useState } from "react";
import Tab from "./Tab";
function Tabs({ children }) {
const [tab, setTab] = useState("card-view");
return (
<div>
<div className="flex align-middle w-fit bg-dark-600 rounded-3xl py-2 px-2">
{children.map((child) => {
const { id } = child.props;
return (
<Tab key={id} {...child.props} activeTab={tab} onClick={setTab} />
);
})}
</div>
{children.map((child) => {
if (child.props.id !== tab) return undefined;
return child.props.children;
})}
</div>
);
}
export default Tabs;
import Tabs from "./Tabs";
import Tab from "./Tab";
export { Tab, Tabs };
...@@ -10,7 +10,7 @@ import { useCryptoList } from "../queries"; ...@@ -10,7 +10,7 @@ import { useCryptoList } from "../queries";
import numeral from "numeral"; import numeral from "numeral";
import Wrapper from "../components/content/Wrapper"; import Wrapper from "../components/content/Wrapper";
import Sidebar from "../components/sidebar/Sidebar"; import Sidebar from "../components/sidebar/Sidebar";
import { Tabs, Tab } from "../components/tabs/Tab"; import { Tabs, Tab } from "../components/tabs";
import { import {
CollectionIcon, CollectionIcon,
PlusIcon, PlusIcon,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment