Merge pull request 'Implement Breadcrumbs component' (#32) from Implement-Breadcrumbs-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/32
This commit is contained in:
commit
6f9a740a78
48
src/components/breadcrumbs.tsx
Normal file
48
src/components/breadcrumbs.tsx
Normal file
@ -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' : <span className='inline-block h-1 w-1 bg-gray-500 rounded m-1 text-center' key={ randomInteger(20, 1000) }></span>,
|
||||||
|
'slash' : <span className='fz-12 f-gray-700 m-1' key={ randomInteger(20, 1000) }>/</span>,
|
||||||
|
}
|
||||||
|
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(
|
||||||
|
<div className={ className }>
|
||||||
|
{ LinkAndDivider }
|
||||||
|
</div>
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user