From c01f9ddb07627eaf3be78adc9523b53690df9a38 Mon Sep 17 00:00:00 2001 From: Omar Faruk Date: Sat, 13 May 2023 15:48:37 +0600 Subject: [PATCH] fixed tab issue for elements page --- package.json | 2 +- src/content/pages/elements.mdx | 18 ++++++++++-- src/layouts/shortcodes/Tabs.tsx | 50 ++++++++++----------------------- 3 files changed, 31 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index ceba2c1..6469631 100755 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "fuse.js": "^6.6.2", "github-slugger": "^2.0.0", "gray-matter": "^4.0.3", - "marked": "^5.0.1", + "marked": "^5.0.2", "postcss": "^8.4.23", "prettier": "^2.8.8", "prettier-plugin-astro": "^0.8.0", diff --git a/src/content/pages/elements.mdx b/src/content/pages/elements.mdx index d942d7f..64ff082 100755 --- a/src/content/pages/elements.mdx +++ b/src/content/pages/elements.mdx @@ -10,15 +10,27 @@ draft: false -1 +

Tab 1

+ +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
-2 +

Tab 2

+ +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
-3 +

Tab 3

+ +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
diff --git a/src/layouts/shortcodes/Tabs.tsx b/src/layouts/shortcodes/Tabs.tsx index 96b90c6..f8bb457 100644 --- a/src/layouts/shortcodes/Tabs.tsx +++ b/src/layouts/shortcodes/Tabs.tsx @@ -1,8 +1,9 @@ -import React, { useEffect, useRef } from "react"; +import { marked } from "marked"; +import { number } from "prop-types"; +import React, { useEffect, useRef, useState } from "react"; function Tabs({ children }: { children: any }) { - //select tabItems - const tabItemsRef = useRef(null); +const [active,setAvtive]=useState(0) const tabLinks = Array.from( children.props.value.matchAll( @@ -11,47 +12,26 @@ function Tabs({ children }: { children: any }) { (match: RegExpMatchArray) => ({ name: match[1], children: match[0] }) ); - console.log(tabLinks); - - //change tab item on click - const handleChangTab = (event: any, index: number) => { - const tabLinks = [...event.currentTarget.parentElement.children]; - const items = [...tabItemsRef.current!.children]; - const activeItem = items.find((item) => !item.classList.contains("hidden")); - const activeTabLink = tabLinks.find((item) => - item.classList.contains("active") - ); - if (activeItem === items[index]) return; - activeTabLink.classList.remove("active"); - event.currentTarget.classList.add("active"); - if (activeItem) { - activeItem.classList.add("hidden"); - } - items[index].classList.remove("hidden"); - }; - - //show first tab-item - useEffect(() => { - let allItems = [...tabItemsRef.current!.children]; - allItems[0].classList.remove("hidden"); - }, []); - return (
- {/*
    +
      {tabLinks.map((item: any, index: number) => (
    • handleChangTab(e, index)} + className={`tab-nav-item ${index === active && "active"}`} + onClick={() =>setAvtive(index) } > - {item} + {item.name}
    • ))}
    -
    - {children} -
    */} + + + { + tabLinks.map((item,i)=>
    ) + } + +
    ); }