Extract NumberedListItem
This commit is contained in:
parent
13fe0ee852
commit
34bbaa9df4
2 changed files with 25 additions and 9 deletions
23
frontend/src/components/basics/NumberedListItem.tsx
Normal file
23
frontend/src/components/basics/NumberedListItem.tsx
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
type NumberedListItemProps = {
|
||||||
|
/** Number to be displayed in front of text */
|
||||||
|
elementNumber: number;
|
||||||
|
/** List item text */
|
||||||
|
text: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Numbered list item - the number is displayed in a circle in front of the text
|
||||||
|
* @param elementNumber Number to be displayed
|
||||||
|
* @param text Text to be displayed
|
||||||
|
*/
|
||||||
|
export function NumberedListItem({elementNumber, text}: NumberedListItemProps) {
|
||||||
|
return <li className="flex items-start gap-4">
|
||||||
|
{/* Step number circle */}
|
||||||
|
<div className="circular-container">
|
||||||
|
{elementNumber}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Step text */}
|
||||||
|
<p className="leading-relaxed">{text}</p>
|
||||||
|
</li>;
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,7 @@ import {getRecipeEditUrl, getRecipeListUrl} from "../../routes"
|
||||||
import ButtonLink from "../basics/ButtonLink"
|
import ButtonLink from "../basics/ButtonLink"
|
||||||
import {mapRecipeDtoToModel} from "../../mappers/RecipeMapper"
|
import {mapRecipeDtoToModel} from "../../mappers/RecipeMapper"
|
||||||
import {NumberStepControl} from "../basics/NumberStepControl.tsx";
|
import {NumberStepControl} from "../basics/NumberStepControl.tsx";
|
||||||
|
import {NumberedListItem} from "../basics/NumberedListItem.tsx";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -131,15 +132,7 @@ export default function RecipeDetailPage() {
|
||||||
{/* Instructions - @todo add reasonable list delegate component*/}
|
{/* Instructions - @todo add reasonable list delegate component*/}
|
||||||
<ol className="space-y-4">
|
<ol className="space-y-4">
|
||||||
{recipe.instructionStepList.map((step, j) => (
|
{recipe.instructionStepList.map((step, j) => (
|
||||||
<li key={j} className="flex items-start gap-4">
|
<NumberedListItem key={j} elementNumber={j + 1} text={step.text}/>
|
||||||
{/* Step number circle */}
|
|
||||||
<div className="circular-container">
|
|
||||||
{j + 1}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Step text */}
|
|
||||||
<p className="leading-relaxed">{step.text}</p>
|
|
||||||
</li>
|
|
||||||
))}
|
))}
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue