Skip to content

Releases: seed-rs/seed

0.10.0

06 Mar 23:58
Compare
Choose a tag to compare
  • Updated dependencies
  • Adapted to Rust 1.67.1.
  • [BREAKING] removed fetch module (use gloo-net)
  • [BREAKING] removed websocket module (use gloo-net or wasm-sockets)
  • [BREAKING] removed web-storage module (use gloo-storage)
  • [BREAKING] removed log! and error! macros (use gloo-console)
  • [BREAKING] removed md! macro (use an external crate + El::from_html)
  • [BREAKING] removed cookies() function (use an external crate like cookie)
  • [BREAKING] removed panic-hook feature (use console_error_panic_hook)
  • [BREAKING] removed serde-json and serde-wasm-bindgen features
  • [BREAKING] added routing feature

0.9.2

02 Jul 10:42
Compare
Choose a tag to compare

Fixed

  • Make fetch::JsonError public.
  • Adapted to Rust 1.61.0.
  • Make Seed compile with wasm_bindgen >= v0.2.81
  • Decoding WebSocket JSON messages

0.9.1

14 Apr 12:52
Compare
Choose a tag to compare
  • Fix: serde-wasm-bindgen feature.

0.9.0

08 Apr 00:27
Compare
Choose a tag to compare
  • [BREAKING] Base path changed from Rc<Vec<String>> to Rc<[String]>.
    It means also Orders::clone_base_path returns a slice.
  • [BREAKING] Hid markdown functionality behind optional markdown feature
  • [BREAKING] Added argument Option<&Namespace> to functions Node::from_html and El::from_html.
  • [BREAKING] Added blanket impl<Ms, T: IntoNodes<Ms>> IntoNode<Ms> for Option<T>.
    This might conflict with local impls of IntoNodes, but should make those unnecessary and safe to remove.
  • [BREAKING] Removed the deprecated browser::service::fetch module.
  • [BREAKING] fetch::Error::SerdeError changed to fetch::Error::JsonError
  • Fixed: Prevent link listener from intercepting links with the download attribute.
  • Fixed an issue in vdom where inputs with invalid contents being cleared on Firefox.
  • Added helpers for wheel event: wheel_ev and to_wheel_event.
  • Added Response::blob
  • Added panic-hook feature, enabled by default, to conditionally include console_error_panic_hook
  • Added macro raw_svg! (#589).
  • Added browser::dom::Namespace to prelude.
  • Added At::Role variant.
  • Added Response::headers.
  • Added Headers::new.
  • Added Header::name() and Header::value().
  • Added fetch::form_data::FormData and Request.form_data.
  • Added serde-wasm-bindgen and serde-json features to use either serde-wasm-bindgen or serde_json for JSON de-/serialization.
    serde-wasm-bindgen reduces final binary size for downstream users.serde-json is enabled by default.
  • Added method to return detailed error response from server with FetchError.
  • Added Request.body_ref to take the body by reference.
  • Added sl_input to the custom_elements example.
  • Added examples drag_and_drop, record_screen, e2e_encryption and counters.
  • Added charts example.
  • Added page_trait example.
  • Added on_insert event on elements, triggered when they are inserted into the DOM.
  • Implemented AsAtValue for Option<T>
  • Implemented From<impl AsRef<web_sys::Headers>> for Headers.
  • Implemented FromIterator<(impl Into<Cow<'a, str>>, impl Into<Cow<'a, str>>)> for Headers.
  • Use wheel_ev in canvas example to zoom rectangle with mouse scroll wheel.
  • Derived Eq and PartialEq for Header.
  • Element macros like div! can now contain Iterators inside of Option values. Previously only one or the other was possible.
  • Adapted to Rust 1.60.0.
  • Updated dependencies

0.8.0

23 Oct 15:05
Compare
Choose a tag to compare
  • [BREAKING] Rename linear_gradient! to linearGradient! for consistency with the other svg macros (same with radial_gradient! and mesh_gradient!) (#377).
  • Fixed base_path with a trailing slash parsing / handling.
  • Fixed C macro memory / WASM file size issue.
  • Added examples tests, service_worker, resize_observer, component_builder, i18n and unsaved_changes (#459).
  • Fixed UrlRequested handling (#459).
  • [BREAKING] Hidden and renamed module effects to effect.
  • Added App::update_with_option.
  • Added Navigator and BeforeUnloadEvent into Seed's web_sys.
  • Fixed runtime exception when using binary data in WS on some browsers (#470).
  • Exported macro with_dollar_sign!.
  • [deprecated] RequestAnimationFrameTime + RequestAnimationFrameHandle + request_animation_frame are deprecated.
  • [deprecated] set_interval + set_timeout are deprecated.
  • [deprecated] class! is deprecated in favor of C!.
  • [BREAKING] Removed deprecated AppBuilder with sink, mount_point, routes, window_events, etc. (Use App::start instead.)
  • [BREAKING] Removed support for deprecated global messages (GMsg, GMs, ..). Use orders.notify + orders.subscribe instead.
  • Relaxed view and update type in App::start from fn to FnOnce + Clone.
  • [BREAKING] Removed deprecated Ev::TriggerUpdate.
  • [deprecated] simple_ev is deprecated.
  • Exposed dependency console_error_panic_hook.
  • Fixed double UrlChanged firing by removing hashchange listener.
  • Added Request::bytes.
  • Build Changes - Remove all workspace=false and instead defined default_to_workspace=false in the config.
  • Build Changes - Make all core cargo-make tasks private with default namespace and remove clear=true from all seed tasks.
  • Build Changes - Remove installation instructions and instead depend on core cargo-make installation tasks.
  • Build Changes - Replace rust for_each implementation with duckscript which is much shorter, simpler and faster (in case you don't have cargo-script installed).
  • Build Changes - Enforce minimal cargo-make version: 0.32.1.
  • Added new Orders methods request_url (#518) and msg_sender (#502).
  • [BREAKING] Orders::msg_mapper returns Rc<..> instead of Box<..>.
  • Reexported pub use wasm_bindgen_futures::{self, spawn_local, JsFuture}; and pub use futures::{self, future::{self, FutureExt, TryFutureExt}}; in lib.rs.
  • Updated example websocket.
  • Fixed link handling (#527).
  • Fixed attribute ordering (#335).
  • Implemented Display for Node (#294).
  • Fixed url requests from pages when the hash routing is used.
  • Fixed url encoding, serializing in push_route and the method Url::hash_path.
  • Added Url methods skip_hash_base_path and encode_uri_component (#424).
  • Added Node::NoChange.

0.7.0

08 May 14:40
Compare
Choose a tag to compare
  • [BREAKING] Custom elements are now patched in-place (#364). Use el_key to force reinitialize an element.
  • Added el_key method for adding keys to Els (#354).
  • Enabled all additional markdown extensions.
  • Removed 'static bound from El and Node.
  • [BREAKING] Changed perform_cmd and seed::browser::service::fetch return type to T instead of Result<T, T>.
  • Added Aria attributes.
  • [BREAKING] UpdateEl<T> changed to UpdateEl<Ms> and fn update(self, el: &mut T); to fn update_el(self, el: &mut El<Ms>); (#370).
  • Added trait UpdateElForIterator<Ms>.
  • Added support for all Iterators, Option, u32, i32, usize, f64 and references in element creation macros (#365, #128).
  • [BREAKING] String implements UpdateEl<T>. (References are now required for String properties, e.g. div![&model.title].)
  • Fixed href detection to ignore use elements (#384).
  • Added methods subscribe, subscribe_with_handle, perform_cmd_with_handle, stream, stream_with_handle and notify into Orders (#130).
  • Added cmds::timeout, stream::interval, stream::window_event, stream::document_event, subs::UrlChanged and subs::UrlRequested (#131).
  • [BREAKING] Futures in perform_cmd and perform_g_cmd are executed immediately.
  • Added App methods notify and notify_with_notification.
  • [BREAKING] App method process_cmd_and_msg_queue renamed to process_effect_queue.
  • [BREAKING] Url change listeners are always active (even if routes is not defined).
  • Added cmds, streams, subs, CmdHandle, SubHandle and StreamHandle into the Seed's prelude.
  • [BREAKING] Removed module next_tick.
  • Added method App::start (alternative to AppBuilder) (#376, #382).
  • Added trait GetElement + included in the prelude (alternative to MountPoint, used in AppStart).
  • Derive Debug for ElRef.
  • Added macros C! and IF! and helper not (#375).
  • Added trait ToClasses + included in the prelude.
  • ev accepts handlers that return Msg, Option<Msg> or () (#394).
  • [BREAKING] EventHandler::new accepts only handlers that return Option<Msg>.
  • [BREAKING] ev-like functions and some Orders method require 'static bound for generic types (temporary).
  • Orders::after_next_render now accepts callbacks that return Msg, Option<Msg> or ().
  • [deprecated] View is deprecated in favor of IntoNodes.
  • [BREAKING] View isn't implemented for El and Vec<El>.
  • [BREAKING] Node::add_listener renamed to add_event_handler.
  • Rewritten README.md.
  • Added new Fetch API module. See seed::browser::fetch (#353)
  • [deprecated] - seed::browser::service::fetch module is deprecated in favor of seed::browser::fetch.
  • Implemented IntoNodes for Option<Node<Msg>> and Option<Vec<Node<Msg>>>.
  • Implemented UpdateEl for i64 and u64.
  • Reset properties checked and value on attribute remove (#405).
  • Added examples markdown, tea_component, subscribe, custom_elements, fetch, url, pages, pages_hash_routing, pages_keep_state, auth, bunnies and graphql (#400).
  • Updated examples.
  • Removed examples app_builder, orders, server_interaction, counter_advanced and mathjax.
  • Example animation_frame renamed to animation.
  • Added base url handling + method Orders::clone_base+path (#369).
  • [BREAKING] Updated Url and routing.rs.
  • [deprecated] seed::browser::service::storage.
  • Added LocalStorage, SessionStorage and WebStorage (trait).
  • Added TouchEvent and touch_ev definitions.
  • Added DragEvent and drag_ev definitions.
  • [BREAKING] Renamed to_kbevent to to_keyboard_event.
  • [BREAKING] after_next_render returns RenderInfo.
  • web_sys, js_sys and wasm_bindgen + wasm_bindgen::JsCast included in prelude.
  • Added WebSocket + related items (#8).
  • Exposed App::mailbox.
  • Added streams::backoff + updated websocket example.

0.6.0

05 Feb 13:08
Compare
Choose a tag to compare
  • Implemented UpdateEl for Filter and FilterMap.
  • Added method El::is_custom(&self).
  • Fixed custom elements patching (#325).
  • Removed unnecessary error message for comment nodes.
  • [BREAKING] Removed deprecated update and trigger_update_ev.
  • [BREAKING] Removed the remains of lifecycle hooks.
  • Fixed value and checked setting for input elements (a bug in VirtualDOM patch algorithm).
  • [BREAKING] Removed unpredictable internal input listeners - Seed will not longer react to external input value changes.
  • [BREAKING] Use EventHandler instead of Listener. (Listener is now used as the internal DOM EventListener representation.)
  • [deprecated] - raw_ev is deprecated in favor of ev. Functionality is the same.
  • Improved performance - rewritten event-handling and other refactors in VirtualDOM.
  • Fixed processing of multiple event-handlers (#138).
  • Added DOM Element references - see ElRef and examples (canvas, user_media or todomvc) (#115).
  • Removed Ms: Clone restriction as much as possible.
  • [BREAKING] Added or changed Custom variant from Custom(String) to Custom(Cow<'static, str>)
    in Ev, Tag, At and St. Use function from to create custom entities (e.g. At::from("my-attribute")) (#208).
  • Added macro nodes!. It accepts Node<Msg> and Vec<Node<Msg, returns flattened Vec<Node<Msg>.
  • Refactored all examples.
  • Fixed and rewritten example todomvc.
  • Renamed counter example to counter_advanced.
  • Renamed drop example to drop_zone.
  • Removed server_interaction_detailed example.
  • Added a new simpler counter example.
  • Changed example in the main README.md.
  • Added flag #![forbid(unsafe_code)] so the Seed will be marked as a safe library by the Rust community tools.
  • Removed clone restriction from the method Effect::map_msg.
  • Implemented UpdateEl for FlatMap.
  • Adapted to Rust 1.41.0.

0.5.1

29 Dec 01:06
Compare
Choose a tag to compare
  • [BREAKING] MessageMapper::map_message changed to MessageMapper::map_msg.
  • [BREAKING] fetch and storage moved to seed::browser::service::{fetch, storage},
    but reimported at the lib level. Ie: seed::fetch, and seed::storage.
  • Added support for Vec<Attr> and Vec<Style> in view macros.
  • App included in prelude.
  • [BREAKING] Seed refactored to use async/.await. fetch.rs docs updated.
  • Export Attrs, Style, Listener. ie, can import with seed::Style etc.
  • Fixed a bug causing the docs not to build.

0.5.0

04 Dec 00:00
Compare
Choose a tag to compare
  • Added helper seed::canvas(), and seed::canvas_context() helper functions.
  • Fixed Url parsing (resolves issue with hash routing).
  • [BREAKING] From<String> for Url changed to TryFrom<String> for Url.
  • Fixed jumping cursor in inputs (#158) .
  • Added method orders.after_next_render(Option<RenderTimestampDelta>) (#207).
  • Fixed a bug with back/forward routing to the landing page (#296).
  • Deprecated Init struct, replacing it with BeforeMount and AfterMount structs to
    better denote state before and after mounting the App occurs.
  • Added a new function builder which replaces build as part of deprecating Init.
  • Added a new function build_and_start which replaces finish as part of deprecating Init.
  • Added IntoInitand IntoAfterMount traits. It is possible to use these
    in place of a closure or function to produce the corresponding Init and AfterMount structs.
  • Messages sent from IntoAfterMount will now be run after the routing message.
  • Added example app_builder.
  • events::Listener is included in prelude.
  • ()s have been replaced with structs - e.g. GMs = () => GMs = UndefinedGMs.
  • WindowEvents alias changed to WindowEventsFn for consistency with other *Fn.
  • Commented builder and helper methods.

0.4.1

09 Sep 00:21
b185912
Compare
Choose a tag to compare
  • Added more SVG At variants
  • Added the St enum, for style keys; similar to At
  • Improved ergonomics of add_child, add_attr, add_class,
    add_style, replace_text, and add_text, Node methods