Commit graph

4481 commits

Author SHA1 Message Date
Evan Almloff
52656348d5
Fix cli readme local installation instructions (#2671)
Fixes #2669
2024-07-23 10:57:51 -07:00
Evan Almloff
163d66e9d7
Expand to a partial Component if a shorthand attribute starts with a capital letter (#2652) 2024-07-23 10:57:15 -07:00
Evan Almloff
7e279e5eb9
Allow no trailing comma after attributes (#2651) 2024-07-23 10:41:22 -07:00
Oskar Manhart
aa1a928b91
Make VirtualDom constructor take an impl Fn() instead of a function pointer (#2583)
* feat: don't use function pointer to allow capturing context

* fix: make virtualdom factory take a function of type ComponentFunction with empty props

* fix: remove redundant generic arg

* fix: bruh

* fix: bruh
2024-07-23 10:40:48 -07:00
opensource-inemar-net
c6126f688e
Remove Dioxus CLI NASM dependency #2666 (#2682)
* fix issue with AWS-LC-SYS

* after mergo of manganis revert back to original

---------

Co-authored-by: Oliver Schnabl <oliver.schnabl@drei.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 10:39:21 -07:00
Evan Almloff
c7c0f4481a
Fix generation race condition with sync storage (#2638)
* Fix generation race condition with sync storage

* Document GenerationalPointer

* check generation before recycling generational box

* fix clippy

* make race_condition_regression test panic if it fails
2024-07-23 10:30:57 -07:00
Miles Murgaw
672f4dfefc
Re-Export Manganis & Update Examples (#2625)
* feat: export manganis

* revision: use manganis in examples

* fix: manganis dep

* fix: workspace root finder

* fix: manganis dep

* fix: ci
2024-07-23 10:29:37 -07:00
Miles Murgaw
856fadc9d6
Splash Screens (#2657)
* progress: loading splash screen

* feat: loading screen plash

* feat: splash screens

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 10:22:49 -07:00
Jonathan Kelley
8b5ad5d925
Fix some CI (windows + nasm, core-macro error) (#2676)
* Moves index.html creation until after wasm creation so the webserver doesn't prematurely serve the page
* sets up nasm for windows builds (to be superseded by Remove Dioxus CLI NASM dependency #2666 #2682)
* puts magnanis-cli-support in a blocking task to prevent threadlocking during sequential builds
* changes order of client/server builds such that the client is built before the server so the webserver doesn't prematurely serve invalid client code
* declobbers "serve" such that each project gets a different dir in the target folder
* uses nest_service instead of fallback so the router doesn't respond with fallback codes
* reincorporates doge's fix from Fix hot-reloading on Windows #2544
2024-07-23 09:58:13 -07:00
Evan Almloff
40f936d56a
Fix deriving props with a where clause and an owner (#2674) 2024-07-22 13:48:39 -07:00
Wesley McCann
5bdb147afd
Handle deserialize errors without panic (#2664)
* Handle deserialize errors rather than panic

* don't clone event data for deserialization in debug or release mode

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-07-22 12:20:15 -05:00
Evan Almloff
ba64ee04c2 fix fullstack with the server feature enabled but the axum feature disabled 2024-07-18 11:47:45 -07:00
Evan Almloff
9fb92f30a6 Fix trailing comma in head doctest 2024-07-18 11:25:23 -07:00
Evan Almloff
e794be5d78
Improve warnings when trying to update outside of pending suspense boundaries on the server (#2575)
* Improve warnings when trying to update outside of pending suspense boundaries on the server

* remove suspense resolve log
2024-07-17 19:32:33 -07:00
Jonathan Kelley
88af3e7eff
Hotreloading of for/if/body, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI (#2258)
Hotreload the contents of for loops, if chains, component bodies, props, attributes, and any literals discovered in rsx!
Add a TUI renderer to the CLI.
Improve the CLI build system to be async and parallel.
Refactor RSX to allow partial expansion of expressions.
Merge autofmt implementations for consistency.
Merge the representation of elements and components under the hood.
Add a diagnostics system for rsx for improved error messages.
Drop interprocess and move to websockets for communication between the CLI and the server.
Assign IDs to nodes and attributes in a stable way to be used in non compiler contexts.
Add hotreloading to any body of component/for loop/if chain/etc.

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Liam Mitchell <liamkarlmitchell@gmail.com>
2024-07-17 19:11:18 -07:00
Evan Almloff
176e67e5b7
switch to a Document trait and introduce Script/Head/Style/Meta components (#2635)
* switch to a Document trait and introduce Script/Head/Style/Meta components

* Fix desktop title

* Insert special elements into the head during the inital SSR render

* Make all head component attributes optional

* hydrate head elements

* improve the server streaming head warning

* Document fullstack head hydration approach

* deduplicate head elements by href

* move Link into head::Link

* document head components

* add meta and title examples

* Fix a few doc examples

* fix formatting

* Add title to playwright tests

* serde is optional on web, but it is enabled by hydrate

* remove leftover console log
2024-07-17 20:54:03 -05:00
Evan Almloff
a490a94ae5
make playwright timeout even longer (50min) 2024-07-18 03:26:12 +02:00
Evan Almloff
742721bfde expose static site generation in the launch builder and prelude 2024-07-10 16:59:08 -07:00
Evan Almloff
580bf666a6 fix static generation playwright test 2024-07-10 16:50:21 -07:00
Andrew Scott
69d7098d0e
feat (desktop): upgrade from wry 37 to 41 (#2618) 2024-07-10 12:50:04 -07:00
Evan Almloff
96450a110e
Fix empty prefixes (#2621) 2024-07-10 12:43:28 -07:00
Evan Almloff
b13236cd38
Add a playwright test that checks static generation (#2608)
* add a playwright test that checks static generation

* add playwright-static-generation to the workspace

* fix static-generation name in CLI
2024-07-10 12:43:02 -07:00
Evan Almloff
f07ab370b9
Fix context type in static generation crate (#2607) 2024-07-10 12:42:33 -07:00
Andrew Scott
156144e8f5
fix (desktop): hide menu when window decorations are disabled (#2613)
* fix: hide menu when window decorations are disabled

* chore: clearer doc description
2024-07-09 12:37:58 -07:00
Andrew Scott
bb52280a51
fix (regression): hide desktop window until initial render (#2614) 2024-07-09 12:32:05 -07:00
Evan Almloff
ecdc93232e
Expand component definition before errors to fix component autocomplete from other modules (#2609) 2024-07-08 11:21:20 -07:00
luveti
e1ea213d05
Fix fullstack desktop launch (#2581) 2024-07-03 12:18:56 -05:00
Jonathan Kelley
2c20d3dc5e
Remove deprecated macros: inline_props, format_args_f!, render! (#2574)
* remove deprecated macros

* Rename derive_typed_builder
2024-07-02 21:46:11 -07:00
Miles Murgaw
7f6f0de085
Partially Fix Hotreload (#2557)
* fix: template names

* fix: hot reload "resets" after reload

* revision: ensure all paths are split by `/`

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-02 21:45:12 -07:00
Miles Murgaw
9567674a63
Feat: CLI Settings (#2424)
* feat: cli settings

* revision: lower msrv

* add previous line about hotreload settings just in case

* Fix issue with open

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-02 21:43:58 -07:00
Miles Murgaw
2ef406982e
Use Manganis Linker System (#2561)
* feat: new manganis linker

* revision: fmt, clippy, cleanup

* revision: link subcommand

* fix: async runtime

* revision: remove working dir arg

* revision: switch dep source

* fix: matrix, playwright

* fix: fullstack manganis
2024-07-02 21:36:44 -07:00
Jonathan Kelley
90c46afd12
fix fmt tests 2024-07-02 17:22:53 -07:00
Jonathan Kelley
b30810e486
cut out a number of changes from the hr PR (#2580) 2024-07-02 17:09:57 -07:00
Evan Almloff
9bf46968cd
don't unwrap when fullstack fails to get the path and query information from the request (#2578) 2024-07-02 15:31:52 -07:00
Evan Almloff
4cab834640
switch to comments as placeholder nodes (#2579) 2024-07-02 15:31:18 -07:00
Jonathan Kelley
30f6986283
Fix clippy 2024-07-02 12:39:32 -07:00
Jonathan Kelley
1404d26455
Switch to using refs instead of owned for autofmt write block out (#2573) 2024-07-02 12:27:11 -07:00
Evan Almloff
022e4ad203
Suspense boundaries/out of order streaming/anyhow like error handling (#2365)
* create static site generation helpers in the router crate

* work on integrating static site generation into fullstack

* move ssg into a separate crate

* integrate ssg with the launch builder

* simplify ssg example

* fix static_routes for child routes

* move CLI hot reloading websocket code into dioxus-hot-reload

* fix some unused imports

* use the same hot reloading websocket code for fullstack

* fix fullstack hot reloading

* move cli hot reloading logic into the hot reload crate

* ssg example working with dx serve

* add more examples

* fix clippy

* switch to a result for Element

* fix formatting

* fix hot reload doctest imports

* fix axum imports

* add show method to error context

* implement retaining nodes during suspense

* fix unterminated if statements

* communicate between tasks and suspense boundaries

* make suspense placeholders easier to use

* implement IntoDynNode and IntoVNode for more wrappers

* fix clippy examples

* fix rsx tests

* add streaming html utilities to the ssr package

* unify hydration and non-hydration ssr cache

* fix router with Result Element

* don't run server doc tests

* Fix hot reload websocket doc examples

* simple apps working with fullstack streaming

* fix preloading wasm

* Report errors encountered while streaming

* remove async from incremental renderer

* document new VirtualDom suspense methods

* make streaming work with incremental rendering

* fix static site generation

* document suspense structs

* create closure type; allow async event handlers in props; allow shorthand event handlers

* test forwarding event handlers with the shorthand syntax

* fix clippy

* fix imports in spawn async doctest

* fix empty rsx

* fix async result event handlers

* fix mounting router in multiple places

* Fix task dead cancel race condition

* simplify diffing before adding suspense

* fix binary size increase

* fix attribute diffing

* more diffing fixes

* create minimal fullstack feature

* smaller fullstack bundles

* allow mounting nodes that are already created and creating nodes without mounting them

* fix hot reload feature

* fix replacing components

* don't reclaim virtual nodes

* client side suspense working!

* fix CLI

* slightly smaller fullstack builds

* fix multiple suspended scopes

* fix merge errors

* yield back to tokio every few polls to fix suspending on many tasks at once

* remove logs

* document suspense boundary and update suspense example

* fix ssg

* make streaming optional

* fix some router and core tests

* fix suspense example

* fix serialization with out of order server futures

* add incremental streaming hackernews demo

* fix hackernews demo

* fix root hackernews redirect

* fix formatting

* add tests for suspense cases

* slightly smaller binaries

* slightly smaller

* improve error handling docs

* fix errors example link

* fix doc tests

* remove log file

* fix ssr cache type inference

* remove index.html

* fix ssg render template

* fix assigning ids on elements with dynamic attributes

* add desktop feature to the workspace examples

* remove router static generation example; ssg lives in the dioxus-static-generation package

* add a test for effects during suspense

* only run effects on mounted nodes

* fix multiple suspense roots

* fix node iterator

* fix closures without arguments

* fix dioxus-core readme doctest

* remove suspense logs

* fix scope stack

* fix clippy

* remove unused suspense boundary from hackernews

* assert that launch never returns for better compiler errors

* fix static generation launch function

* fix web renderer

* pass context providers into server functions

* add an example for FromContext

* clean up DioxusRouterExt

* fix server function context

* fix fullstack desktop example

* forward CLI serve settings to fullstack

* re-export serve config at the root of fullstack

* forward env directly instead of using a guard

* just set the port in the CLI for fullstack playwright tests

* fix fullstack dioxus-cli-config feature

* fix launch server merge conflicts

* fix fullstack launch context

* Merge branch 'main' into suspense-2.0

* fix fullstack html data

* remove drop virtual dom feature

* add a comment about only_write_templates binary size workaround

* remove explicit dependencies from use_server_future

* make ErrorContext and SuspenseContext more similar

* Tweak: small tweaks to tomls to make diff smaller

* only rerun components under suspense after the initial placeholders are sent to the client

* add module docs for suspense

* keep track of when suspense boundaries are resolved

* start implementing JS out of order streaming

* fix core tests

* implement the server side of suspense with js

* fix streaming ssr with nested suspense

* move streaming ssr code into fullstack

* revert minification changes

* serialize server future data as the html streams

* start loading scripts wasm immediately instead of defering the script

* very basic nested suspense example working with minimal html updates

* clean up some suspense/error docs

* fix hydrating nested pending server futures

* sort resolved boundaries by height

* Fix disconnecting clients while streaming

* fix static generation crate

* don't insert extra divs when hydrating streamed chunks

* wait to swap in the elements until they are hydrated

* remove inline streaming script

* hackernews partially working

* fix spa mode

* banish the open shadow dom

* fix removing placeholder

* set up streaming playwright test

* run web playwright tests on 9999 to avoid port conflicts with other local servers

* remove suspense nodes if the suspense boundary is replaced before the suspense resolves on the server

* ignore hydration of removed suspense boundaries

* use path based indexing to fix hydrating suspense after parent suspense with child is removed

* re-export dioxus error

* remove resolved suspense divs if the suspense boundary has been removed

* Fix client side initialized server futures

* ignore comment nodes while traversing nodes in core to avoid lists getting swapped out with suspense

* Pass initial hydration data to the client

* hide pre nodes

* don't panic if reclaiming an element fails

* fix scope stack when polling tasks

* improve deserialization out of length message

* Ok(VNode::placeholder()) -> VNode::empty()

* fix typo in rsx usage

* restore testing changes from suspense example

* clean up some logs and comments

* fix playwright tests

* clean up more changes in core

* clean up core tests

* remove anymap dependency

* clean up changes to hooks

* clean up changes in the router, rsx, and web

* revert changes to axum-hello-world

* fix use_server_future

* fix clippy in dioxus-core

* check that the next or previous node exist before checking if we should ignore them

* fix formatting

* fix suspense playwright test

* remove unused suspense code

* add more suspense playwright tests

* add more docs for error boundaries

* fix suspense core tests

* fix ErrorBoundary example

* remove a bunch of debug logging in js

* fix router failure_external_navigation

* use absolute paths in the interpreter build.rs

* strip '\r' while hashing ts files

* add a wrapper with a default error boundary and suspense boundary

* restore hot reloading

* ignore non-ts files when hashing

* sort ts files before hashing them

* fix rsx tests

* fix fullstack doc tests

* fix core tests

* fix axum auth example

* update suspense hydration diagram

* longer playwright build limit

* tiny fixes - spelling, formatting

* update diagram link

* remove comment and template nodes for suspense placeholders

* remove comment nodes as we hydrate text

* simplify hackernews example

* clean up hydrating text nodes

* switch to a separate environment variable for the base path for smaller binaries

* clean up file system html trait

* fix form data

* move streaming code into fullstack

* implement serialize and deserialize for CapturedError

* remove waits in the nested suspense playwright spec

* force sequential fullstack builds for CI

* longer nested suspense delay for CI

* fix --force-sequential flag

* wait to launch server until client build is done

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-01 20:50:36 -07:00
Evan Almloff
ffa36a67c3
Forward cli serve settings and make it easier to provide platform config to fullstack (#2521)
* assert that launch never returns for better compiler errors

* fix static generation launch function

* fix web renderer

* pass context providers into server functions

* add an example for FromContext

* clean up DioxusRouterExt

* fix server function context

* fix fullstack desktop example

* forward CLI serve settings to fullstack

* re-export serve config at the root of fullstack

* forward env directly instead of using a guard

* just set the port in the CLI for fullstack playwright tests

* fix fullstack dioxus-cli-config feature

* fix launch server merge conflicts

* fix fullstack launch context

* run web playwright tests on 9999 to avoid port conflicts with other local servers

* fix playwright tests
2024-06-28 14:40:41 -07:00
Miles Murgaw
9dd4427cb5
revision: cli-dev profile section (#2560) 2024-06-27 18:22:32 -05:00
Jonathan Kelley
47ab4c8db9
Chore: move todo!() to unimplemented!() (#2558) 2024-06-27 16:27:27 -05:00
Matt Hunzinger
5ae7fd65ee
Fix hot-reloading on Windows (#2544)
* Convert template path to UNIX spec to be compatible with file! macro output

* Make this code windows-only
2024-06-20 10:25:56 -07:00
Miles Murgaw
9e2b3d95ad
revision: change ip (#2543) 2024-06-19 17:32:16 -07:00
Maja Piechotka
f7820d8d94
add aria-current to link (#2540) 2024-06-19 17:11:28 -05:00
Evan Almloff
b6dc2a2230
Deduplicate reactive scope updates/Reset subscriptions on reruns/fix use memo double update (#2506)
* deduplicate effect updates

* only subscribe to signals read in the current run of reactive scopes

* subscribe to memo reads after recomputing the value
2024-06-18 18:49:25 -07:00
Evan Almloff
24d247dc85 fix fullstack launch arc 2024-06-18 18:48:13 -07:00
Evan Almloff
b0caf442ab
Make it easier to provide context to fullstack (#2515)
* pass context providers into server functions

* add an example for FromContext

* clean up DioxusRouterExt

* fix server function context

* fix fullstack desktop example

* fix axum auth example

* fix fullstack context type

* fix context providers path
2024-06-18 20:38:06 -05:00
Evan Almloff
6320e00056
Convert closures into Option<Callback> automatcially (#2538)
* convert from a closure to Option<Callback> in props

* add a test for optional callback conversion
2024-06-18 16:39:35 -07:00
Evan Almloff
a09548d80e
Remove implicit optional dependency features (#2512)
* remove implicit optional dependency features

* switch to new features in desktop, router and signals crates
2024-06-18 18:39:15 -05:00
Evan Almloff
b0ae9be9c8
Simplify dioxus-config-macro (#2514)
* refactor config macro code

* fix clippy
2024-06-18 16:10:23 -07:00
Evan Almloff
3a4860add4
Document props and component macro (#2522)
* document prop attributes

* document children props

* fix children doc test
2024-06-18 16:06:54 -07:00
Evan Almloff
f042e0029c
fix raw attribute names (#2520) 2024-06-18 16:05:11 -07:00
Evan Almloff
f4a62fad6b
Assert that launch never returns for better compiler errors (#2517)
* assert that launch never returns for better compiler errors

* fix static generation launch function

* fix web renderer
2024-06-18 16:04:36 -07:00
Huddy Buddy
5e3bb4f549
add asynchronous custom protocol support (#2535)
Added asynchronous custom protocol handling
2024-06-18 15:53:39 -07:00
Evan Almloff
487570d897
Add CI step to test packages with debug assertions off (#2507)
* test packages in release mode

* run release tests in a separate job

* fix release generation box tests
2024-06-12 13:07:52 -07:00
Evan Almloff
2f387604a8
remove double braces in shorthand children error message 2024-06-12 14:45:17 -05:00
Evan Almloff
591d6330e8
remove unused router feature on simple static generation example 2024-06-12 13:37:53 -05:00
Evan Almloff
a3aa6ae771
Fix hydration of empty text nodes (#2505) 2024-06-11 12:57:14 -07:00
dependabot[bot]
a1cbd32031
Bump braces from 3.0.2 to 3.0.3 in /packages/extension (#2503)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-11 07:05:39 -05:00
Chris Rogus
d0f0548776
add file size to FileEngine (#2323) 2024-06-10 20:48:36 -07:00
Evan Almloff
9d55bfc1dc
Integrate wasm-opt into the CLI (#2434)
* integrate wasm-opt

* include wasm opt configuration in the default dioxus.toml
2024-06-10 20:48:04 -07:00
Evan Almloff
acb1b0755a
improve the error that triggers on when you try to use eval on the server in fullstack (#2502) 2024-06-10 18:48:16 -07:00
Evan Almloff
c0246c26e0
accept impl display instead of From<String> (#2501) 2024-06-10 18:47:48 -07:00
Evan Almloff
d795995e20
Create closure type; allow async event handlers in props; allow short hand event handlers (#2437)
* create closure type; allow async event handlers in props; allow shorthand event handlers

* test forwarding event handlers with the shorthand syntax

* fix clippy

* fix imports in spawn async doctest
2024-06-10 18:47:07 -07:00
Evan Almloff
79e18c2d62 fix hooks release build 2024-06-10 07:41:15 -05:00
nayo0513
689ac5433f
add popover api (#2498)
Co-authored-by: nayo0513 <nayo05130513@gmail.com>
2024-06-10 07:23:12 -05:00
igor
ae95e74b80
fix: Add missing name attribute for <slot> (#2494)
Fix #2493
2024-06-10 07:21:16 -05:00
Miles Murgaw
d6fc5dc5bd
feat: progress bar or println (#2489) 2024-06-07 17:29:55 -07:00
Evan Almloff
e4764f2bba
switch from slab to slotmap for tasks to fix that ABA problem (#2488) 2024-06-07 14:36:08 -07:00
Evan Almloff
5024139e01
Detect components called as functions (#2461)
* detect components called as functions
* use the existing component name information instead of a thread local
2024-06-07 13:55:10 -07:00
Evan Almloff
7efe4d0e49
Fix recursive copy while bundling (#2419) 2024-06-07 12:43:17 -07:00
Evan Almloff
a35436ee4f
Change ToRouteSegments to borrow self (#2283)
* Change display route segments to borrow the type

* fix formatting
2024-06-07 12:40:50 -07:00
Evan Almloff
0127501dbf
Improve inline docs (#2460)
Improve inline docs

* improve incorrect event handler return error message

* Improve event handler docs

* document the eval functions

* document spawn and common spawn errors

* fix event handler docs

* add notes about how you use attributes and elements in rsx

* add doc aliases for attributes and events we rename

* add some more aliases for common search terms

* don't doc ignore any public examples in core

* don't ignore public doc examples in ssr

* don't ignore examples in the dioxus package readme

* add a warning when you launch without a renderer enabled

* fix some outdated element docs

* add a bunch of examples to resource

* add notes about desktop events

* add more docs for use_resource

* add on_unimplemented hint to Dependency

* fix some unresolved links

* add examples to each of the router traits

* add not implemented errors for router traits

* add an example to the routable trait

* expand rsx macro docs

* improve memo docs

* update the dioxus readme

* mention dioxus crate features in the docs

* fix a bunch of doc tests

* fix html doc tests

* fix router doc tests

* fix dioxus signals doc tests

* fix dioxus ssr doc tests

* fix use_future example in the hooks cheat sheet

* add a javascript alias for eval

* fix hook explanation values

* remove unused embed-doc-image dependency
2024-06-06 18:15:17 -07:00
Evan Almloff
5494e38cf8
Fix event bubbling inside templates after a hot template reload (#2484) 2024-06-06 17:10:38 -07:00
Evan Almloff
b6cdcb4e7f
fix routers without an index route (#2477) 2024-06-06 17:03:59 -07:00
Evan Almloff
5e57779435
fix memo and resource caller information (#2443) 2024-06-06 17:01:42 -07:00
Evan Almloff
489758d5ba
remove value attribute in addition to resetting it (#2480) 2024-06-06 17:00:54 -07:00
Evan Almloff
e1044a2fa8 fix clippy 2024-06-06 15:34:52 -05:00
airblast
0eb16f27d4
chore: Remove unused dependency (#2466)
Removes the constcat dependeny from core-macro.
2024-05-31 07:06:55 -05:00
Drew Pirrone-Brusse
e1b0e0425a
Switch from an absolute ::dioxus to the relative dioxus_core (#2465) 2024-05-31 06:12:32 -05:00
Rafał Krzyważnia
54dbe6d074
Use RwLock::read in SyncStorage (#2463)
Replaces `RwLock::try_read` with `RwLock::read` in `SyncStorage`. This change prioritizes potential deadlocks over panics, as unwrapping a failed `try_read` is deemed less desirable.
2024-05-30 07:05:20 -05:00
Marc Espin
7d529cf39c
fix: Avoid cloning a provided context unnecessarily (#2458)
* fix: Avoid clonning a provided context unnecessarily

* remove another useless clone in use_context_provider

* fix formatting

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-05-29 08:53:21 -05:00
Evan Almloff
b3cd4fac10
set up example scaping for docs.rs (#2450) 2024-05-28 13:05:55 -07:00
Gino Valente
160cde7b48
Make use of #[doc] field attributes in Props derive macro (#2456)
* Support passing docs along to prop fields

* Pass along entire doc attribute
2024-05-28 11:33:51 -07:00
Evan Almloff
1eb90bf43a fix static site generation with child routers 2024-05-23 12:32:39 -05:00
ASR-ASU
9f670e1eb0
Fix value returned by get_scroll_size (#2445)
The scroll position was returned instead.
2024-05-23 11:12:47 -05:00
luveti
d3f96ec323
Improved fullstack reload_upon_connect timeout (#2436)
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-05-22 07:35:07 -05:00
Evan Almloff
2523581cf4
Autocomplete rsx (#2421)
* autocomplete rsx

* hide the completions module

* fix autocomplete for identifiers that start with a raw identifier

* add field completion hints for props

* remove extra import

* Revert "add field completion hints for props"

This reverts commit 194899c737.

* fix autocomplete inside raw expressions

* fix autofmt

* feat: just use regular ifmt if it's compatible

reuses the tokens for ifmt so RA provides its HIR lowering on simple formatted strings

* fix merging ifmt strings

* add a better error message for components called like functions

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-05-22 07:24:50 -05:00
Evan Almloff
245003a5d4
Create a Static Site Generation platform; Deduplicate hot reloading code (#2226)
* create static site generation helpers in the router crate

* work on integrating static site generation into fullstack

* move ssg into a separate crate

* integrate ssg with the launch builder

* simplify ssg example

* fix static_routes for child routes

* move CLI hot reloading websocket code into dioxus-hot-reload

* fix some unused imports

* use the same hot reloading websocket code for fullstack

* fix fullstack hot reloading

* move cli hot reloading logic into the hot reload crate

* ssg example working with dx serve

* add more examples

* fix clippy

* fix formatting

* fix hot reload doctest imports

* fix axum imports

* don't run server doc tests

* Fix hot reload websocket doc examples
2024-05-22 07:24:15 -05:00
ASR-ASU
460b70e0f0
Add access to the Element attributes related to scrolling (#2338)
* Add access to the Element attributes related to scrolling

* Fix clippy warnings

* Restore interpreter/src/js/hash.txt content

* Update generated interpreter files

* Use euclid types as return types

* Remove redundant functions

* It's not necessary for PixelsSize to be in 3D

* Rename PixelsVector to PixelsVector3D and add a PixelsVector2D type

* Remove unused PixelsLength type
2024-05-21 12:56:49 -05:00
Sam Tay
e51d0d6983
Fix default launcher for web targets (#2431) 2024-05-20 06:55:12 -05:00
Andrew Voynov
e69c69abd7
chore(cli): optimized args handling for init & new (#2418) 2024-05-15 13:29:50 -05:00
Andrew Voynov
16313894da
feat(cli): init cmd can now skip user interaction (#2412)
Previously only `dx new` had this ability, now `dx init` has it, too.
2024-05-15 12:13:36 -05:00
Andrew Voynov
720899e19e
feat(cli): now user interaction can be skipped (#1872)
when creating a new project
2024-05-14 09:39:56 -05:00
Evan Almloff
40df088b7d
Make use_server_future accept FnMut (#2387) 2024-05-04 15:30:25 +01:00
Evan Almloff
5290b658fd
Fix effects triggered from async tasks; improve work scheduling docs (#2370)
* outline work scheduling

* move scheduling code from dirty_scope to scheduler

* introduce queue_effect

* Run effects after all tasks are polled if there are no components rerendered

* add a new test for async effects
2024-05-04 15:30:13 +01:00
Evan Almloff
05eaca320f fix empty docs clippy warning 2024-05-03 13:41:48 -05:00
Drew Pirrone-Brusse
010dcf9533
Improve the base_path story (#2381)
* Improve the base_path story

* allow base path routes without trailing slash

* remove note about trailing /

* fix clippy empty docs

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-05-03 13:38:07 -05:00
Wojciech Niedźwiedź
1b82ad4ddd
cli: disable opening the tab by default, add some trace logging for config resolution (#2377) 2024-05-01 08:32:04 -05:00
Evan Almloff
74352f2f61
Fix desktop effect race condition (#2313)
* don't poll desktop before the render has been applied

* fix desktop headless tests

* move edit queued code into the edit channel and add more comments
2024-04-26 12:52:33 -04:00
Jonathan Kelley
a0e06271dd
Fix: flaky CI by correcting autofmt to match proper spacing (#2369) 2024-04-26 12:04:56 -04:00
Evan Almloff
cbeda0af76
Refactor and fix eval channels (#2302)
* wip

* pull out eval into the interpreter

* fix web eval

* fix DioxusChannel name

* properly drop dioxus channel

* use typescript dioxus chanel in desktop

* add more comments to native eval

* add desktop headless eval tests

* expand web playwright eval tests

* fix web headless tests

* fix default hasher path

* run eval tests on windows

* restore desktop query drop code

* remove data from drop desktop query message

* catch syntax errors in desktop eval

* catch js runtime errors in desktop

* fix typo interprerter -> interpreter

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-04-26 11:55:48 -04:00
Evan Almloff
1d72ef16c4
Restore set compare hook (#2287)
* restore set compare hook

* fix use_set_compare doc example

* add a hook to compare a value with a set

* implement partialeq for SetCompare

* export the new hook

* fix the use_set_compare hook
2024-04-26 11:55:11 -04:00
Evan Almloff
fc2b441ee1
Fix memorization for the fragment component (#2360) 2024-04-26 00:48:06 -04:00
Evan Almloff
47c87568e1
Fix event handler memory leak (#2298)
* fix event handler memory leak and double drops

* Prevent double dropping generational boxes

* recycle instead of dropping
2024-04-26 00:47:22 -04:00
Evan Almloff
a27d4e71ed
Only compress web assets in the CLI (#2329)
* only compress web assets in the CLI

* precompressed -> pre-compressed

* only enable pre-compression in release builds
2024-04-26 00:47:04 -04:00
Chris Rogus
b147f5a737
impl HasFileData for FormData (#2346) 2024-04-25 14:31:50 -04:00
Evan Almloff
08da9a1253
Implement hash fragments in the router (#2320)
* implement hash fragments in the router

* clean up query and search example

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-04-25 14:30:25 -04:00
Evan Almloff
dd8e69635b
Fix calling server functions on desktop (#2357) 2024-04-25 14:24:46 -04:00
Evan Almloff
b30b363460
remove unused once-cell in memo (#2311) 2024-04-25 13:58:42 -04:00
Evan Almloff
cf6998b5ba
Warnings for signal writes that may cause infinite loops (#2277)
* warnings for signal writes that may cause infinite loops

* improve debugging output for reactive contexts on scopes

* expand help message
2024-04-25 13:58:25 -04:00
Evan Almloff
61360ea05f
extend the subscriber list instead of overriding it; fixes subscribers added in mark_dirty (#2319) 2024-04-25 13:57:46 -04:00
Evan Almloff
88f3558419
Fix reclaim element when hot reloading (#2361)
* Fix reclaim element when hot reloading

* Just disable headless tests on windows
2024-04-25 13:36:43 -04:00
Evan Almloff
39cef8fe42
fix out of order fields in route definitions (#2356) 2024-04-25 13:36:04 -04:00
Evan Almloff
6234f60b0e
Fix desktop drag events that don't have associated files (#2358) 2024-04-25 13:34:21 -04:00
Evan Almloff
72ef58b95e
Create use_muda_event_handler hook (#2367)
* create use_muda_event_handler hook

* fix use_muda_event_handler re-export
2024-04-25 13:32:34 -04:00
Jonathan Kelley
790b984e61
bump extension version 2024-04-24 22:41:31 -04:00
Alexander
1ec6819ac8
enables ability to turn off hot reloading (#2351) 2024-04-24 08:02:57 -05:00
Miles Murgaw
4e0c7940cc
revision: cli help docs (#2349) 2024-04-22 09:57:56 -05:00
alongdate
a5b4ceed39
chore: fix some typos in comments (#2340)
Signed-off-by: alongdate <alongyear@outlook.com>
2024-04-19 08:29:22 -05:00
Evan Almloff
5ce91e1bfc
Fix flakey windows tests (#2332) 2024-04-17 15:08:38 -07:00
Chung
c9ab09b348
fix path of set_server_url (#2314)
Co-authored-by: =Chung Wong <=wch705@gmail.com>
2024-04-16 09:18:50 -05:00
Marc Espin
b6d3da2b31
fix: Update use_resource docs (#2303)
* fix: Update `use_resource` docs

* Fix use_recourse docs; match ref instead of deref because WeatherLocation isn't copy

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-04-15 08:28:12 -05:00
Miles Murgaw
05b662ee2d
fix: cli spam when build (#2300) 2024-04-13 18:16:13 -05:00
Marc Espin
29f69fa145
fix: Update use_hook docs (#2296)
* fix: Update `use_hook` docs

* rust

* fixes
2024-04-11 15:43:58 -05:00
Matt Hunzinger
96b9baafff
Fix event handler drops (#2288)
* Try to fix event handler drops

* fix Option<EventHandler> parsing logic

* only move over props if both event handlers are some

* fix owner forwarding with props(extends)

* fix clippy

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-04-10 11:23:45 -05:00
Jonathan Kelley
994056e16d
Don't eat keys (#2280) 2024-04-08 22:31:58 -07:00
Jonathan Kelley
67af2d89dd
Autofmt nested rsx using syn::Visitor (#2279)
* Nested macros using visitor pattern
2024-04-08 22:15:52 -07:00
Jonathan Kelley
0b7c7701a3
fmt 2024-04-08 19:24:49 -07:00
Evan Almloff
af524d979b
Fix empty for loop, if statements and children (#2275)
* fix empty for loop, if statements and children

* fix clippy
2024-04-08 19:23:55 -07:00
Evan Almloff
40b576894f
fix the assets head path (#2267) 2024-04-08 19:23:11 -07:00
Evan Almloff
a012fb57ab
poll tasks in the same order they are queued (#2273) 2024-04-08 18:44:43 -07:00
Evan Almloff
26c109f661
fix volatile attributes (#2278) 2024-04-08 18:42:48 -07:00
Aron Puddy
c799168666
pass features thru to cargo on dx bundle (#2271) 2024-04-08 08:52:04 -05:00
Ahmet Kaan GÜMÜŞ
e03593cff7
docs: ✏️ unnecessary need to in global_context.rs (#2268) 2024-04-08 08:51:14 -05:00
Miles Murgaw
f4164c78c2
Fix: CLI Logging (#2254)
* fix: cli logging

* remove: debug print
2024-04-05 12:37:40 -07:00
Zan Pan
bd852c68fd
Use tracing::warn when the dioxus CLI is not used (#2250) 2024-04-05 12:36:05 -07:00
Zan Pan
fcbebbbf14
Use tracing::warn! instead of error! when assets not being preloaded (#2251)
* Use `tracing::warn!` instead of `error!` when assets not being preloaded

Currently, it emits a `tracing::error` when assets not being preloaded if the dioxus CLI was not used to build the application. It should be a warning since `cargo` can also build the application successfully.

* add more details to desktop preload warning

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-04-05 08:33:02 -05:00
Jonathan Kelley
7eccc7a104
Release 0.5.2
dioxus-cli@0.5.2
dioxus-fullstack@0.5.2

Generated by cargo-workspaces
2024-04-04 18:32:14 -07:00
Evan Almloff
c43bbe6aa5
fix the relative paths issue in the fullstack crates.io build (#2248) 2024-04-04 18:30:14 -07:00
Jonathan Kelley
9c5e5f969f
Release 0.5.1
dioxus@0.5.1
dioxus-autofmt@0.5.1
dioxus-check@0.5.1
dioxus-cli@0.5.1
dioxus-core@0.5.1
dioxus-core-macro@0.5.1
dioxus-desktop@0.5.1
dioxus-fullstack@0.5.1
dioxus-hooks@0.5.1
dioxus-html@0.5.1
dioxus-interpreter-js@0.5.1
dioxus-lib@0.5.1
dioxus-liveview@0.5.1
dioxus-mobile@0.5.1
dioxus-router-macro@0.5.1
dioxus-rsx@0.5.1
dioxus-signals@0.5.1
dioxus-ssr@0.5.1
dioxus-web@0.5.1
dioxus_server_macro@0.5.1
generational-box@0.5.1
rsx-rosetta@0.5.1

Generated by cargo-workspaces
2024-04-04 17:05:21 -07:00
Jonathan Kelley
702509cb7e
Fix recycling on component callbacks (#2247) 2024-04-04 16:48:06 -07:00
Jonathan Kelley
0a3291084f
Use a VecDequeue instead of a vec for bytes (#2246)
* Fix: add both the rAF queue and vecdequeue

* Fix: Take before recycle
2024-04-04 16:29:28 -07:00
Jonathan Kelley
633e2a70a4
Fix memory leak in owner (#2245)
* Fix: memory leak on listeners for elements

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-04-04 15:32:23 -07:00
Jonathan Kelley
44fe2defc2
Fix: memory leak on listeners for elements (#2244)
* Fix: memory leak on listeners for elements
* Recycle in manuallydrop

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-04-04 14:25:17 -07:00
Jonathan Kelley
6f3c5518ca
Feat: provide root context as method on virtualdom (#2243) 2024-04-04 12:00:06 -07:00
Jonathan Kelley
821a650f77
Fix: requeue events, process events (#2236)
* Fix: requeue events, process events

* Fix test: wait_for_work shouldn't wait 3 times when one update happens while rendering
2024-04-04 11:46:31 -07:00
Evan Almloff
4d25e3f6a2
fix hydration for non-bubbling events (#2234) 2024-04-04 11:46:22 -07:00
Jonathan Kelley
be99e29e5f
Fixes to autofmt, make it more aggressive (#2230)
* fix: fmt unterminated if, be more aggressive with line splits

* Fix: Handle long exprs in for/if statements
2024-04-03 15:27:36 -07:00
Russell Mull
46b0eeb12c
Implement the "Toggle Developer Tools" menu item in desktop (#2198) 2024-04-02 10:53:26 -07:00