leptos-use/README.md

85 lines
2.3 KiB
Markdown
Raw Normal View History

2023-06-10 19:43:51 +01:00
<br/>
2023-05-26 12:16:47 +01:00
<p align="center">
2023-05-31 00:00:41 +01:00
<a href="https://github.com/synphonyte/leptos-use">
2023-06-07 18:43:51 +01:00
<img src="https://raw.githubusercontent.com/synphonyte/leptos-use/main/docs/logo.svg" alt="Leptos-Use Collection of essential Leptos utilities" width="150"/>
2023-05-26 12:16:47 +01:00
</a>
</p>
2023-06-07 18:31:46 +01:00
<h4 align="center">Collection of essential Leptos utilities</h4>
<p align="center">Inspired by React-Use / VueUse / SolidJS-USE</p>
2023-05-26 12:16:47 +01:00
<p align="center">
2023-06-10 04:41:24 +01:00
<a href="https://crates.io/crates/leptos-use"><img src="https://img.shields.io/crates/v/leptos-use.svg?label=&color=%232C1275" alt="Crates.io"/></a>
<a href="https://leptos-use.rs"><img src="https://img.shields.io/badge/-docs%20%26%20demos-%239A233F" alt="Docs & Demos"></a>
2023-06-17 04:05:51 +01:00
<a href="https://leptos-use.rs"><img src="https://img.shields.io/badge/-35%20functions-%23EF3939" alt="35 Functions" /></a>
2023-05-26 12:16:47 +01:00
</p>
2023-06-10 04:41:24 +01:00
<br/>
<br/>
<br/>
2023-06-10 19:15:41 +01:00
## Usage
2023-05-13 23:05:08 +01:00
[![Docs](https://docs.rs/leptos-use/badge.svg)](https://docs.rs/leptos-use/)
[![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)](https://github.com/synphonyte/leptos-use#license)
[![Build Status](https://github.com/synphonyte/leptos-use/actions/workflows/ci.yml/badge.svg)](https://github.com/synphonyte/leptos-use/actions/workflows/ci.yml)
2023-06-10 19:15:41 +01:00
```rust
use leptos::*;
use leptos_use::{use_mouse, UseMouseReturn};
#[component]
fn Demo(cx: Scope) -> impl IntoView {
let UseMouseReturn { x, y, .. } = use_mouse(cx);
view! { cx,
{x} " x " {y}
}
}
```
2023-06-07 18:44:19 +01:00
We have only just begun implementing the first dozen functions but they are already very usable and ergonomic.
2023-06-07 18:31:46 +01:00
2023-06-09 23:10:33 +01:00
Missing a function? Open a ticket or PR!
## Development
To run all tests run
```shell
cargo test --all-features
```
## Book
First you need to install
```shell
cargo install mdbook-cmdrun trunk
```
To build the book go in your terminal into the docs/book folder
and run
```shell
mdbook serve
```
2023-06-10 03:19:00 +01:00
2023-06-09 23:10:33 +01:00
This builds the html version of the book and runs a local dev server.
To also add in the examples open another shell and run
```shell
python3 post_build.py
2023-06-10 03:19:00 +01:00
```
If you only want to add the example for one function you can run for example
```shell
2023-06-14 16:15:03 +01:00
python3 post_build.py use_mequery
2023-06-16 20:25:01 +01:00
```
### New Function Template
To scaffold a new function quickly you can run `template/createfn.sh`. It requires that [`ffizer`](https://ffizer.github.io/) is installed.