Skip to content

v0.6.1

Latest

Choose a tag to compare

@dannote dannote released this 08 Oct 22:48
· 13 commits to master since this release

Checked against PhoenixReplay 0.6.2, recording real sessions of the demo and replaying them in its player.

Changed

  • Require vize 0.17.2, whose template split leaves Vue's reserved ref and key out and gives each <option> of a <select v-model> a slot, so the selected one renders selected.
  • While a session is recorded, a hybrid component reports a changed value once it has been still for the replayer's debounce, as PhoenixReplay records a form control, and at least once per flush interval while it keeps changing. A typed word is one step on the timeline, and an input PhoenixReplay records itself agrees with the component's report. Before, a report went out once per flush interval and could catch a word halfway typed.
  • replay_render/1 no longer translates __changed__ for tracked replay renders: PhoenixReplay renders a replay in full at every step.

Fixed

  • A replay of a hybrid component in PhoenixReplay's player showed the first moment of the session at every step. The player renders each moment with __changed__: nil and diffs it with change tracking, which crashed the template renderer, and the frame restarted. __changed__: nil now renders every slot, as in LiveView.
  • A replay on a server that didn't compile the component itself, such as a release, failed for recorded client state whose name appears nowhere in Elixir code, such as useClipboard's copied: the name's atom, made while compiling, didn't exist there. The render spec now carries every declared name's atom.
  • A <select v-model> rendered no option selected, so its first paint showed the first option until the browser mounted. The option whose value, bound :value or text is the select's is now selected, or each one among them for <select multiple>, as Vue's server renderer does.
  • A static ref or key rendered as an attribute, such as ref="search" on an input. Vue reserves both and never renders them, nor now does PhoenixVapor.
  • A hybrid LiveView's client module, which compiling writes, wasn't written again once missing while the build was up to date, such as on a fresh checkout beside a build restored from a CI cache, so building the assets failed. The LiveView now recompiles while its client module is missing.
  • A server action reached the recording before the client state it was sent from, when that state was still waiting for the next report: a project name typed just before Save was recorded after the save. The state now goes out first.