mirror of
https://github.com/DioxusLabs/dioxus
synced 2024-11-22 20:23:09 +00:00
Chore: cargo fmt
This commit is contained in:
parent
2b9c8d09d9
commit
cd20d3c168
6 changed files with 136 additions and 43 deletions
|
@ -1,13 +1,10 @@
|
|||
use crate::parser::{HtmlParser, NodesToPush};
|
||||
use quote::quote;
|
||||
use syn::{Stmt, Expr, ExprIf};
|
||||
use syn::{Expr, ExprIf, Stmt};
|
||||
|
||||
impl HtmlParser {
|
||||
/// Parse an incoming syn::Stmt node inside a block
|
||||
pub(crate) fn parse_statement(
|
||||
&mut self,
|
||||
stmt: &Stmt,
|
||||
) {
|
||||
pub(crate) fn parse_statement(&mut self, stmt: &Stmt) {
|
||||
// Here we handle a block being a descendant within some html! call.
|
||||
//
|
||||
// The descendant should implement Into<IterableNodes>
|
||||
|
@ -16,7 +13,7 @@ impl HtmlParser {
|
|||
match stmt {
|
||||
Stmt::Expr(expr) => {
|
||||
self.parse_expr(stmt, expr);
|
||||
},
|
||||
}
|
||||
_ => {
|
||||
self.push_iterable_nodes(NodesToPush::Stmt(stmt));
|
||||
}
|
||||
|
@ -24,15 +21,11 @@ impl HtmlParser {
|
|||
}
|
||||
|
||||
/// Parse an incoming syn::Expr node inside a block
|
||||
pub(crate) fn parse_expr(
|
||||
&mut self,
|
||||
stmt: &Stmt,
|
||||
expr: &Expr
|
||||
) {
|
||||
pub(crate) fn parse_expr(&mut self, stmt: &Stmt, expr: &Expr) {
|
||||
match expr {
|
||||
Expr::If(expr_if) => {
|
||||
self.expand_if(stmt, expr_if);
|
||||
},
|
||||
}
|
||||
_ => {
|
||||
self.push_iterable_nodes(NodesToPush::Stmt(stmt));
|
||||
}
|
||||
|
@ -42,9 +35,9 @@ impl HtmlParser {
|
|||
/// Expand an incoming Expr::If block
|
||||
/// This enables us to use JSX-style conditions inside of blocks such as
|
||||
/// the following example.
|
||||
///
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
///
|
||||
/// ```rust,ignore
|
||||
/// html! {
|
||||
/// <div>
|
||||
|
@ -54,16 +47,12 @@ impl HtmlParser {
|
|||
/// </div>
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
///
|
||||
/// Traditionally this would be possible as an if statement in rust is an
|
||||
/// expression, so the then, and the else block have to return matching types.
|
||||
/// Here we identify whether the block is missing the else and fill it in with
|
||||
/// a blank VirtualNode::text("")
|
||||
pub(crate) fn expand_if(
|
||||
&mut self,
|
||||
stmt: &Stmt,
|
||||
expr_if: &ExprIf
|
||||
) {
|
||||
pub(crate) fn expand_if(&mut self, stmt: &Stmt, expr_if: &ExprIf) {
|
||||
// Has else branch, we can parse the expression as normal.
|
||||
if let Some(_else_branch) = &expr_if.else_branch {
|
||||
self.push_iterable_nodes(NodesToPush::Stmt(stmt));
|
||||
|
|
|
@ -120,7 +120,7 @@ fn parse_open_tag(input: &mut ParseStream, open_bracket_span: Span) -> Result<Ta
|
|||
attrs,
|
||||
open_bracket_span,
|
||||
closing_bracket_span,
|
||||
is_self_closing
|
||||
is_self_closing,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -5,16 +5,119 @@ use super::svg_namespace::is_svg_namespace;
|
|||
|
||||
lazy_static! {
|
||||
static ref VALID_TAGS: HashSet<&'static str> = [
|
||||
"a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big",
|
||||
"blockquote","body","br","button","canvas","caption","cite","code","col","colgroup",
|
||||
"command", "data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed",
|
||||
"fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head",
|
||||
"header","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend",
|
||||
"li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object",
|
||||
"ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt",
|
||||
"ruby","s","samp","script","section","select","small","source","span","strong","style",
|
||||
"sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title",
|
||||
"tr","track","u","ul","var","video","wbr",
|
||||
"a",
|
||||
"abbr",
|
||||
"address",
|
||||
"area",
|
||||
"article",
|
||||
"aside",
|
||||
"audio",
|
||||
"b",
|
||||
"base",
|
||||
"bdi",
|
||||
"bdo",
|
||||
"big",
|
||||
"blockquote",
|
||||
"body",
|
||||
"br",
|
||||
"button",
|
||||
"canvas",
|
||||
"caption",
|
||||
"cite",
|
||||
"code",
|
||||
"col",
|
||||
"colgroup",
|
||||
"command",
|
||||
"data",
|
||||
"datalist",
|
||||
"dd",
|
||||
"del",
|
||||
"details",
|
||||
"dfn",
|
||||
"dialog",
|
||||
"div",
|
||||
"dl",
|
||||
"dt",
|
||||
"em",
|
||||
"embed",
|
||||
"fieldset",
|
||||
"figcaption",
|
||||
"figure",
|
||||
"footer",
|
||||
"form",
|
||||
"h1",
|
||||
"h2",
|
||||
"h3",
|
||||
"h4",
|
||||
"h5",
|
||||
"h6",
|
||||
"head",
|
||||
"header",
|
||||
"hr",
|
||||
"html",
|
||||
"i",
|
||||
"iframe",
|
||||
"img",
|
||||
"input",
|
||||
"ins",
|
||||
"kbd",
|
||||
"keygen",
|
||||
"label",
|
||||
"legend",
|
||||
"li",
|
||||
"link",
|
||||
"main",
|
||||
"map",
|
||||
"mark",
|
||||
"menu",
|
||||
"menuitem",
|
||||
"meta",
|
||||
"meter",
|
||||
"nav",
|
||||
"noscript",
|
||||
"object",
|
||||
"ol",
|
||||
"optgroup",
|
||||
"option",
|
||||
"output",
|
||||
"p",
|
||||
"param",
|
||||
"picture",
|
||||
"pre",
|
||||
"progress",
|
||||
"q",
|
||||
"rp",
|
||||
"rt",
|
||||
"ruby",
|
||||
"s",
|
||||
"samp",
|
||||
"script",
|
||||
"section",
|
||||
"select",
|
||||
"small",
|
||||
"source",
|
||||
"span",
|
||||
"strong",
|
||||
"style",
|
||||
"sub",
|
||||
"summary",
|
||||
"sup",
|
||||
"table",
|
||||
"tbody",
|
||||
"td",
|
||||
"textarea",
|
||||
"tfoot",
|
||||
"th",
|
||||
"thead",
|
||||
"time",
|
||||
"title",
|
||||
"tr",
|
||||
"track",
|
||||
"u",
|
||||
"ul",
|
||||
"var",
|
||||
"video",
|
||||
"wbr",
|
||||
]
|
||||
.iter()
|
||||
.cloned()
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -22,15 +22,15 @@ fn on_input() {
|
|||
let text_clone = Rc::clone(&text);
|
||||
|
||||
let input = html! {
|
||||
<input
|
||||
// On input we'll set our Rc<RefCell<String>> value to the input elements value
|
||||
oninput=move |event: Event| {
|
||||
let input_elem = event.target().unwrap();
|
||||
let input_elem = input_elem.dyn_into::<HtmlInputElement>().unwrap();
|
||||
*text_clone.borrow_mut() = input_elem.value();
|
||||
}
|
||||
value="End Text"
|
||||
>
|
||||
<input
|
||||
// On input we'll set our Rc<RefCell<String>> value to the input elements value
|
||||
oninput=move |event: Event| {
|
||||
let input_elem = event.target().unwrap();
|
||||
let input_elem = input_elem.dyn_into::<HtmlInputElement>().unwrap();
|
||||
*text_clone.borrow_mut() = input_elem.value();
|
||||
}
|
||||
value="End Text"
|
||||
>
|
||||
};
|
||||
|
||||
let input_event = InputEvent::new("input").unwrap();
|
||||
|
|
|
@ -454,19 +454,19 @@ impl From<Vec<VirtualNode>> for IterableNodes {
|
|||
|
||||
impl<V: View> From<Vec<V>> for IterableNodes {
|
||||
fn from(other: Vec<V>) -> Self {
|
||||
IterableNodes(other.into_iter().map(|it| it.render()).collect())
|
||||
IterableNodes(other.into_iter().map(|it| it.render()).collect())
|
||||
}
|
||||
}
|
||||
|
||||
impl<V: View> From<&Vec<V>> for IterableNodes {
|
||||
fn from(other: &Vec<V>) -> Self {
|
||||
IterableNodes(other.iter().map(|it| it.render()).collect())
|
||||
IterableNodes(other.iter().map(|it| it.render()).collect())
|
||||
}
|
||||
}
|
||||
|
||||
impl<V: View> From<&[V]> for IterableNodes {
|
||||
fn from(other: &[V]) -> Self {
|
||||
IterableNodes(other.iter().map(|it| it.render()).collect())
|
||||
IterableNodes(other.iter().map(|it| it.render()).collect())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue