Skip to content

Releases: jails-org/Jails

v5.8.5 - Patch Update

18 Dec 21:12
Compare
Choose a tag to compare

Change Log

Reusability, Interoperability

Adding html and attributes template tags to use for SPA and SSR cenarios.

Use case

There are sometimes where we want to share functionality between 2 or more applications.
The most obvious ways is to use template literals because it's compatible with node & browser systems.
html, attributes are directives to be used on this context and we want more advanced features on template strings.

import { html, attributes } from 'jails-js/html'

export default function banner ({ attrs = [] }) {
  return html`
    [1, 2, 3].map( n => html`
      <h1 ${ attributes( attrs ) }>
        ${n}
      </h1>
    `)
  `
}

banner({ 
  attrs : [{ title: 'Hello' }] 
})

Output

  <h1 title="Hello">1</h1>
  <h2 title="Hello">2</h2>
  <h3 title="Hello">3</h3>

v5.8.3 - Patch Update

20 Nov 20:58
Compare
Choose a tag to compare

Change Log

consistency

Fixing an edge case when dom element was queried inside the high order component function on page load.
The fix is to render component before running the high order function.

v5.8.2 - Patch Update

22 Sep 18:24
Compare
Choose a tag to compare

Change Log

  • Fixing innerHTML feature. It was broken for elements outside body tree. Like html, head etc. The alternative has also improve performance for this kind of operation.

v5.8.1 - Patch Update

21 Sep 16:07
Compare
Choose a tag to compare

Change Log

  • Improving / Fixing child rendering on parent updates. On previous version, parent updates used to force children updates and that causes some bugs on certain cenarios. Now, just like versions that used to use morphdom, the tree updates stops on children components.

v5.8.0 - Minor Update

10 May 22:25
60e04f8
Compare
Choose a tag to compare

Change Log

We prioritize consistency over performance

The most recent updates aimed to enhance performance, but we encountered inconsistencies with HTML updates during testing. To ensure greater consistency and predictability, a significant change was implemented, replacing morphdom with idiomorph.

There are other well known libraries that already made that change:

We are indeed using idiomorph and we'll include it officially as part of Turbo 8. We started with morphdom, but eventually switched to idiomorph as we found it way more suitable. It just worked great with all the tests we threw at it, while morphdom was incredibly picky about "ids" to match nodes. Also, we noticed it's at least as fast.

-- Jorge Marubia / 37Signals

That helps on decision making about changing the core of the library which is the dom diff engine.

v5.7.1 - Patch Update

28 Apr 16:57
Compare
Choose a tag to compare

Change Log

Reverting previous release : Performance Improvement

The latest update focused on optimizing memory usage. However, as Jails is designed to function with or without templates, a bug has been identified when users interact directly with the DOM. Therefore, I am rolling forward the current build. Prioritizing correctness over performance remains our primary concern.

The performance optimization was not discarted but it requires more deep research.

v5.7.0 - Minor Update

25 Apr 00:07
Compare
Choose a tag to compare

Change Log

Performance Improvement

Making Templates smaller by removing child component html content from parent component template by creating "holes" inside the parent component template string.

Since parent component doesn't update child components html, it doesn't need to have child html data saved in memory.

This improvement is very welcome especially for pages that contains application component in the most top level hierarchy.

v5.6.1 - Patch Update

06 Apr 12:51
Compare
Choose a tag to compare

Change Log

The change is related to the previous update.
It was added the behavior in main to wait until template is fully rendered when using export template interface.

v5.6.0 - Minor Update

06 Apr 05:26
Compare
Choose a tag to compare

Change Log

Adding template interface in component module. It will replace the current HTMLElement template html.
It will unlock a way to set a html dynamically.

sync:

export const template = () => '<h1>Hello World</h1>'

async:

export const template = async () => '<h1>Hello World</h1>'

v5.5.4 + v5.5.5 - Patch Update

07 Jan 16:43
Compare
Choose a tag to compare

Change Log

  • Fixing error when calling jails.start without registering any component. 5.5.4
  • Assigning default empty object to the optional dependencies helper to avoid raising unnecessary exceptions.