diff --git a/src/components/breadcrumbs.tsx b/src/components/breadcrumbs.tsx new file mode 100644 index 0000000..6a33655 --- /dev/null +++ b/src/components/breadcrumbs.tsx @@ -0,0 +1,48 @@ +import React, { Children, ReactElement } from "react"; + +type Props = { + divider: "dotted" | "slash"; + children: React.ReactNode; + className?: string; +} ; + +/* ---------- 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( +