From a28be14e25b6a57b523e688bb1e6f8b33e21259b Mon Sep 17 00:00:00 2001
From: Himanshu Aggarwal <aggarwah@mcmaster.ca>
Date: Fri, 18 Mar 2022 21:44:15 -0400
Subject: [PATCH] Make Tabs component modular

---
 src/cryptometrics/components/tabs/Tab.js   | 27 ++++------------------
 src/cryptometrics/components/tabs/Tabs.js  | 25 ++++++++++++++++++++
 src/cryptometrics/components/tabs/index.js |  4 ++++
 src/cryptometrics/pages/index.js           |  2 +-
 4 files changed, 34 insertions(+), 24 deletions(-)
 create mode 100644 src/cryptometrics/components/tabs/Tabs.js
 create mode 100644 src/cryptometrics/components/tabs/index.js

diff --git a/src/cryptometrics/components/tabs/Tab.js b/src/cryptometrics/components/tabs/Tab.js
index 7463462..2b95982 100644
--- a/src/cryptometrics/components/tabs/Tab.js
+++ b/src/cryptometrics/components/tabs/Tab.js
@@ -1,28 +1,7 @@
 import classNames from "classnames";
-import React, { useState } from "react";
+import React from "react";
 
-export 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 function Tab({ id, content, activeTab, onClick }) {
+function Tab({ id, content, activeTab, onClick }) {
   return (
     <button
       className={classNames(
@@ -37,3 +16,5 @@ export function Tab({ id, content, activeTab, onClick }) {
     </button>
   );
 }
+
+export default Tab;
diff --git a/src/cryptometrics/components/tabs/Tabs.js b/src/cryptometrics/components/tabs/Tabs.js
new file mode 100644
index 0000000..6d4d74a
--- /dev/null
+++ b/src/cryptometrics/components/tabs/Tabs.js
@@ -0,0 +1,25 @@
+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;
diff --git a/src/cryptometrics/components/tabs/index.js b/src/cryptometrics/components/tabs/index.js
new file mode 100644
index 0000000..4c18d77
--- /dev/null
+++ b/src/cryptometrics/components/tabs/index.js
@@ -0,0 +1,4 @@
+import Tabs from "./Tabs";
+import Tab from "./Tab";
+
+export { Tab, Tabs };
diff --git a/src/cryptometrics/pages/index.js b/src/cryptometrics/pages/index.js
index b51d6a2..94c9839 100644
--- a/src/cryptometrics/pages/index.js
+++ b/src/cryptometrics/pages/index.js
@@ -10,7 +10,7 @@ import { useCryptoList } from "../queries";
 import numeral from "numeral";
 import Wrapper from "../components/content/Wrapper";
 import Sidebar from "../components/sidebar/Sidebar";
-import { Tabs, Tab } from "../components/tabs/Tab";
+import { Tabs, Tab } from "../components/tabs";
 import {
   CollectionIcon,
   PlusIcon,
-- 
GitLab