-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
1,408 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
# 🌱 Leptos Alert-RS Usage | ||
|
||
Adding Alert-RS to your Leptos project is simple: | ||
|
||
1. Make sure your project is set up with **Leptos**. Refer to their [Getting Started Guide](https://book.leptos.dev/getting_started/index.html) for setup instructions. | ||
|
||
1. Add `alert-rs` to your dependencies: | ||
|
||
```sh | ||
cargo add alert-rs --features=lep | ||
``` | ||
|
||
1. Import the `Alert` component into your Leptos component and start showing alerts in your app. | ||
|
||
## 🛠️ Usage | ||
|
||
Incorporating Leptos Alert into your application is easy. Follow these steps: | ||
|
||
1. Import the Alert component into your Leptos project: | ||
|
||
```rust | ||
use leptos::prelude::*; | ||
use alert_rs::leptos::Alert; | ||
``` | ||
|
||
1. Define the alert properties and use the Alert component in your Leptos component: | ||
|
||
```rust | ||
use leptos::prelude::*; | ||
use alert_rs::leptos::Alert; | ||
use alert_rs::{IconType, Position}; | ||
|
||
|
||
#[component] | ||
pub fn App() -> impl IntoView { | ||
let show_alert = signal(true); | ||
view! { | ||
<Alert | ||
title={"Alert Title"} | ||
body={"This is an alert message"} | ||
show_alert={show_alert} | ||
timeout={2500} | ||
icon_class={"flex justify-center"} | ||
confirm_button_text={"Okay"} | ||
cancel_button_text={"Cancel"} | ||
confirm_button_class={"bg-green-500 text-white rounded"} | ||
cancel_button_class={"bg-red-500 text-white rounded"} | ||
show_confirm_button={true} | ||
show_cancel_button={true} | ||
show_close_button={true} | ||
on_confirm={Callback::from(move || {})} | ||
on_cancel={Callback::from(move || {})} | ||
position={Position::TopRight} | ||
icon_type={IconType::Success} | ||
alert_class={"flex items-center text-center justify-center bg-gray-800 text-white border border-gray-600"} | ||
title_class={"dark:text-white"} | ||
body_class={"dark:text-gray-300"} | ||
icon_color={""} | ||
icon_width={"50"} | ||
/> | ||
} | ||
} | ||
``` | ||
|
||
## 🔧 Props | ||
|
||
### Main Props | ||
|
||
| Property | Type | Description | Default | | ||
| --------------------- | ---------------------- | ------------------------------------------------------------- | --------- | | ||
| `show_alert` | `UseStateHandle<bool>` | The state handle controlling the visibility of the alert. | `false` | | ||
| `title` | `&'static str` | The title text for the alert. | `"Info"` | | ||
| `body` | `&'static str` | The message content of the alert. | `""` | | ||
| `timeout` | `u32` | Timeout duration in milliseconds for the alert to auto-close. | `2500` ms | | ||
| `show_confirm_button` | `bool` | Whether to display the confirm button. | `true` | | ||
| `show_cancel_button` | `bool` | Whether to display the cancel button. | `true` | | ||
| `show_close_button` | `bool` | Whether to display the close button. | `false` | | ||
|
||
### Callback Props | ||
|
||
| Property | Type | Description | Default | | ||
| ------------ | -------------- | ------------------------------------------------------ | ------- | | ||
| `on_confirm` | `Callback<()>` | Callback triggered when the confirm button is clicked. | No-op | | ||
| `on_cancel` | `Callback<()>` | Callback triggered when the cancel button is clicked. | No-op | | ||
| `on_close` | `Callback<()>` | Callback triggered when the close button is clicked. | No-op | | ||
| `will_open` | `Callback<()>` | Callback triggered before the alert opens. | No-op | | ||
| `did_open` | `Callback<()>` | Callback triggered after the alert opens. | No-op | | ||
| `did_close` | `Callback<()>` | Callback triggered after the alert closes. | No-op | | ||
|
||
### Alert Appearance & Positioning | ||
|
||
| Property | Type | Description | Default | | ||
| ------------ | -------------- | --------------------------------------------------------------------- | ---------------- | | ||
| `native` | `bool` | Whether to use the native browser alert instead of custom one. | `false` | | ||
| `position` | `Position` | Position of the alert on the screen (`Position::TopRight`, etc.). | `TopRight` | | ||
| `icon_type` | `IconType` | The type of icon to display with the alert (e.g., `Info`, `Warning`). | `IconType::Info` | | ||
| `icon_color` | `&'static str` | The color of the icon. | `""` | | ||
| `icon_width` | `&'static str` | The width of the icon. | `"50"` | | ||
|
||
### Styling Props | ||
|
||
```sh | ||
+-----------------------------------------------------------+ <-- `alert_class` | ||
| | | ||
| +-----------------------------------------------+ | <-- `close_button_style` (if `show_close_button`) | ||
| | [X] Close Button | | | ||
| +-----------------------------------------------+ | | ||
| | | ||
| +-----------------------------------------------+ | <-- `icon_class` and `icon_style` | ||
| | [Icon] | | <-- `icon_tag` | ||
| +-----------------------------------------------+ | | ||
| | | ||
| +-----------------------------------------------+ | <-- `title_class` and `title_style` | ||
| | [Alert Title] | | <-- `props.title` | ||
| +-----------------------------------------------+ | | ||
| | | ||
| +-----------------------------------------------+ | <-- `separator_style` | ||
| | [--- Separator ---] | | | ||
| +-----------------------------------------------+ | | ||
| | | ||
| +-----------------------------------------------+ | <-- `message_style` and `body_class` | ||
| | [Alert Message] | | <-- `props.body` | ||
| +-----------------------------------------------+ | | ||
| | | ||
| +-----------------------------------------------+ | <-- `confirm_button_class` and `confirm_button_style` | ||
| | [Confirm Button] | | <-- `props.confirm_button_text` | ||
| +-----------------------------------------------+ | | ||
| | | ||
| +-----------------------------------------------+ | <-- `cancel_button_class` and `cancel_button_style` | ||
| | [Cancel Button] | | <-- `props.cancel_button_text` | ||
| +-----------------------------------------------+ | | ||
| | | ||
+-----------------------------------------------------------+ | ||
``` | ||
|
||
| Property | Type | Description | Default | | ||
| ---------------------- | -------------- | ---------------------------------------------------- | ------- | | ||
| `alert_class` | `&'static str` | CSS class for styling the alert container. | `""` | | ||
| `icon_class` | `&'static str` | CSS class for styling the icon. | `""` | | ||
| `confirm_button_class` | `&'static str` | CSS class for styling the confirm button. | `""` | | ||
| `cancel_button_class` | `&'static str` | CSS class for styling the cancel button. | `""` | | ||
| `title_class` | `&'static str` | CSS class for styling the alert title. | `""` | | ||
| `message_class` | `&'static str` | CSS class for styling the message text in the alert. | `""` | | ||
|
||
### Inline Styles | ||
|
||
| Property | Type | Description | Default | | ||
| ---------------------- | -------------- | ----------------------------------------- | ------------------------------ | | ||
| `alert_style` | `&'static str` | Inline CSS styles for the alert. | `DEFAULT_ALERT_STYLE` | | ||
| `close_button_style` | `&'static str` | Inline CSS styles for the close button. | `DEFAULT_CLOSE_BUTTON_STYLE` | | ||
| `confirm_button_style` | `&'static str` | Inline CSS styles for the confirm button. | `DEFAULT_CONFIRM_BUTTON_STYLE` | | ||
| `cancel_button_style` | `&'static str` | Inline CSS styles for the cancel button. | `DEFAULT_CANCEL_BUTTON_STYLE` | | ||
| `icon_style` | `&'static str` | Inline CSS styles for the icon. | `DEFAULT_ICON_STYLE` | | ||
| `title_style` | `&'static str` | Inline CSS styles for the title text. | `DEFAULT_TITLE_STYLE` | | ||
| `separator_style` | `&'static str` | Inline CSS styles for the separator. | `DEFAULT_SEPARATOR_STYLE` | | ||
| `message_style` | `&'static str` | Inline CSS styles for the message text. | `DEFAULT_MESSAGE_STYLE` | | ||
|
||
## 💡 Notes | ||
|
||
- The `native` prop can be set to `true` to use the browser's default alert behavior instead of the custom component. | ||
- The alert is displayed based on the `show_alert` state, which should be controlled by the parent component. | ||
- Timeout behavior can be adjusted using the `timeout` property, and alert visibility can be toggled using the `show_alert` state. | ||
- You can customize the alert's appearance, including the icon, buttons, position, and styles. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# 📚 Alert RS Dioxus Tailwind Components | ||
# 📚 Alert RS Dioxus Example | ||
|
||
## 🛠️ Pre-requisites: | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
target/**/* | ||
dist/**/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[package] | ||
name = "leptos-alert-rs" | ||
version = "0.1.0" | ||
edition = "2021" | ||
|
||
[dependencies] | ||
console_error_panic_hook = "0.1.7" | ||
alert-rs = { path = "../../", features = ["lep"] } | ||
leptos = { version = "0.7.2", features = ["csr"] } | ||
log = "0.4.22" | ||
wasm-logger = "0.2.0" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# 📚 Alert RS Leptos Example | ||
|
||
## 🛠️ Pre-requisites: | ||
|
||
### 🐧 **Linux Users** | ||
|
||
1. **Install [`rustup`](https://www.rust-lang.org/tools/install)**: | ||
|
||
```sh | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh | ||
``` | ||
|
||
1. **Install [`trunk`](https://trunkrs.dev/)**: | ||
|
||
```sh | ||
cargo install --locked trunk | ||
``` | ||
|
||
1. **Add the Wasm target**: | ||
|
||
```sh | ||
rustup target add wasm32-unknown-unknown | ||
``` | ||
|
||
### 🪟 **Windows Users** | ||
|
||
1. **Download and install `rustup`**: Follow the installation instructions [here](https://www.rust-lang.org/tools/install). | ||
|
||
1. **Install [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install)**: Open PowerShell as administrator and run: | ||
|
||
```sh | ||
wsl --install | ||
``` | ||
|
||
1. **Reset Network Stack**: In PowerShell (administrator mode), run: | ||
|
||
```sh | ||
netsh int ip reset all | ||
netsh winsock reset | ||
``` | ||
|
||
1. **Install Linux packages in WSL**: Once inside your WSL terminal, update and install required dependencies: | ||
|
||
```sh | ||
sudo apt update | ||
sudo apt install build-essential pkg-config libudev-dev | ||
``` | ||
|
||
1. **Install `trunk`**: | ||
|
||
```sh | ||
cargo install --locked trunk | ||
``` | ||
|
||
1. **Add the Wasm target**: | ||
|
||
```sh | ||
rustup target add wasm32-unknown-unknown | ||
``` | ||
|
||
## 🚀 Building and Running | ||
|
||
1. Fork/Clone the GitHub repository. | ||
|
||
```bash | ||
git clone https://github.com/opensass/alert-rs | ||
``` | ||
|
||
1. Navigate to the application directory. | ||
|
||
```bash | ||
cd alert-rs/examples/leptos | ||
``` | ||
|
||
1. Run the client: | ||
|
||
```sh | ||
trunk serve --port 3000 | ||
``` | ||
|
||
Navigate to http://localhost:3000 to explore the landing page. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<link href="https://unpkg.com/[email protected]/dist/tailwind.min.css" rel="stylesheet" /> | ||
<link data-trunk rel="css" href="main.css" type="text/css" /> | ||
<link data-trunk rel="rust"/> | ||
<base data-trunk-public-url /> | ||
</head> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
body { | ||
color: #5e5c7f; | ||
background-color: #303030; | ||
font-family: "Rubik", sans-serif; | ||
font-size: 16px; | ||
line-height: 1.7; | ||
overflow-x: hidden; | ||
} |
Oops, something went wrong.