diff --git a/src/components/breadcrumbs.tsx b/src/components/breadcrumbs.tsx index 90c9a4e..6a33655 100644 --- a/src/components/breadcrumbs.tsx +++ b/src/components/breadcrumbs.tsx @@ -1,21 +1,48 @@ -import { isArray } from "lodash"; -import React from "react"; +import React, { Children, ReactElement } from "react"; type Props = { - divider?: string; + divider: "dotted" | "slash"; children: React.ReactNode; -} -/* -------------------------------------------------------------------------- */ -/* use: children */ -/* -------------------------------------------------------------------------- */ -export default function Breadcrumbs({divider ,children}: Props) { - return( - <> - {divider} { + className?: string; +} ; - isArray(children) ? children.join(' '+divider+' ') : children - } -  {divider} - +/* ---------- a random number for a unique key (react requirement) ---------- */ + +function randomInteger( min: number, max: number ) { + let rand = min + Math.random() * (max + 1 - min); + return Math.floor(rand); + } + +/* ----------------------- get the divider as designed ---------------------- */ + +function GetDivider( symbol: string ) { + const dividers = { + 'dotted' : , + 'slash' : /, + } + return ( symbol === 'dotted') ? dividers.dotted : dividers.slash +} + +export default function Breadcrumbs( { divider ,children, className }: Props ) { + + /* -------------- Convert the children into an array and insert ------------- */ + /* ------------------the elements with the divider into it ------------------ */ + + let childrenToArray = React.Children.toArray(children) + let LinkAndDivider: any + LinkAndDivider = []; + + for( let i = 0; i < childrenToArray.length; i++ ) { + + let dividerComponent = GetDivider( divider ) + LinkAndDivider = LinkAndDivider.concat( childrenToArray[i] ).concat( dividerComponent ) + } + LinkAndDivider.pop(); + + return( +
+ { LinkAndDivider } +
+ ) } \ No newline at end of file