Dashboard button #25
@@ -1,11 +1,11 @@
|
|||||||
use leptos::prelude::*;
|
use leptos::prelude::*;
|
||||||
|
|
|||||||
use leptos_router::hooks::use_navigate;
|
use leptos_router::hooks::use_navigate;
|
||||||
|
|
||||||
/// #Dashboard Button Component
|
/// # Dashboard Button Component
|
||||||
///
|
///
|
||||||
/// This component displays a large panel-like button that redirects a user to a specified page.
|
/// This component displays a large panel-like button that redirects a user to a specified page.
|
||||||
/// It's best used on a user dashboard, where multiple instances of the button are present.
|
/// It's best used on a user dashboard, where multiple instances of the button are present.
|
||||||
/// It has a title, description, and icon
|
/// It has a title, a description, and icon
|
||||||
///
|
///
|
||||||
/// Example usage:
|
/// Example usage:
|
||||||
/// ```
|
/// ```
|
||||||
@@ -20,10 +20,18 @@ use leptos_router::hooks::use_navigate;
|
|||||||
/// ```
|
/// ```
|
||||||
#[component]
|
#[component]
|
||||||
pub fn DashboardButton(
|
pub fn DashboardButton(
|
||||||
|
This whole component needs documentation - at least give a title to the component, a brief description, explain the props, and a usage example. This is included with other components that have been created, specifically the selection lists ( This whole component needs documentation - at least give a title to the component, a brief description, explain the props, and a usage example. This is included with other components that have been created, specifically the selection lists (`ChipsList`, `CheckboxList`, etc.).
|
|||||||
#[prop(into)] title: String,
|
/// The main label displayed on the button.
|
||||||
#[prop(into)] description: String,
|
#[prop(into)]
|
||||||
#[prop(into)] icon: String,
|
title: String,
|
||||||
#[prop(into)] path: String,
|
/// A brief explanatory text that describes the destination page.
|
||||||
|
#[prop(into)]
|
||||||
|
description: String,
|
||||||
|
/// The file path or URL of the icon displayed at the top of the button.
|
||||||
|
#[prop(into)]
|
||||||
|
icon: String,
|
||||||
|
/// The route that the user is navigated to when clicking the button.
|
||||||
|
#[prop(into)]
|
||||||
|
path: String,
|
||||||
) -> impl IntoView {
|
) -> impl IntoView {
|
||||||
let navigate = use_navigate();
|
let navigate = use_navigate();
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user
These should not be Optional values. When we use
#[prop(optional), it just means that we either have a value, or the default value. For something like this (a String) that would mean we either have a specific value passed in or just the empty string.Setting up the
#[prop]the right way above should mean that you just print the string value here, no mapping needed.Depending on your desired behavior, leaving this as an
Option<String>might be fine. What I'd like to know is the mindset behind it - if this is aNonevalue, how are you handling it? Should this even be optional at all? Why?I'd recommend documenting this properly (refer to Leptos documentation for how to add doc comments to components).
These props should also have comments. They just have the
/// commentone line above.There should always be a space after the
#in headers.