testimonials 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/app/views/testimonials/testimonials/show.html.erb +4 -2
- data/lib/testimonials/version.rb +1 -1
- data/lib/testimonials/widget.js +23 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ca7fa3a534c13036edc28e6206c06b5e4ef82949cafaeee614a2d196509c2176
|
|
4
|
+
data.tar.gz: 140a7b0783d3284076def56a598a0c70bb72f1208b2a6158b62c09d634eeaeb2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6eebe2d3c06afff74b999f4a8a29120a97d3a2e78eeb0ff1429df26bf14a9303c66861665489fdb10104c9f7557bca3ad140f466ddb4a4b2a2116d465c3bc302
|
|
7
|
+
data.tar.gz: 343195af39cd476f4a74728ab5e11997efa834806c7213aa3ab3b61bba933a6f2d89ccb6d255a9463b9089f9a4ebba5af078ff968db4b2adfff1fe1c6ad97cb3
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.3
|
|
4
|
+
|
|
5
|
+
- Video playback no longer pauses itself moments after play in Firefox: the
|
|
6
|
+
`#t=0.1` poster-frame fragment made Firefox seek a MediaRecorder webm that
|
|
7
|
+
has no seek index, stalling the stream. The fragment is gone (widget and
|
|
8
|
+
dashboard); `preload="metadata"` still paints the first frame in Chrome
|
|
9
|
+
and Firefox.
|
|
10
|
+
|
|
11
|
+
## 0.1.2
|
|
12
|
+
|
|
13
|
+
- The widget dialog goes full-screen on mobile (no bottom sheet, no animations):
|
|
14
|
+
inputs render at 16px to prevent iOS focus-zoom, the action row gains
|
|
15
|
+
safe-area padding, and the dialog's scroll is contained (no page rubber-banding).
|
|
16
|
+
|
|
3
17
|
## 0.1.1
|
|
4
18
|
|
|
5
19
|
- Repository renamed to [yshmarov/testimonials](https://github.com/yshmarov/testimonials);
|
|
@@ -17,9 +17,11 @@
|
|
|
17
17
|
|
|
18
18
|
<div class="card pad" style="margin-bottom: 16px;">
|
|
19
19
|
<% if @testimonial.video_attached? %>
|
|
20
|
-
<%# #t=0.1
|
|
20
|
+
<%# No #t=0.1 fragment: MediaRecorder webm has no seek index, and
|
|
21
|
+
Firefox honors media fragments literally — the pending seek stalls
|
|
22
|
+
playback right after play. preload="metadata" paints the frame. %>
|
|
21
23
|
<video class="playback" controls preload="metadata"
|
|
22
|
-
src="<%= testimonial_video_path(@testimonial)
|
|
24
|
+
src="<%= testimonial_video_path(@testimonial) %>"></video>
|
|
23
25
|
<p class="muted">
|
|
24
26
|
<%= link_to "⬇ #{t('testimonials.dashboard.download_video', default: 'Download video')}",
|
|
25
27
|
testimonial_video_path(@testimonial, download: 1) %>
|
data/lib/testimonials/version.rb
CHANGED
data/lib/testimonials/widget.js
CHANGED
|
@@ -390,7 +390,13 @@
|
|
|
390
390
|
playback.controls = true;
|
|
391
391
|
playback.playsInline = true;
|
|
392
392
|
playback.preload = "metadata";
|
|
393
|
-
|
|
393
|
+
// No #t=0.1 fragment here either (see the review-stage comment):
|
|
394
|
+
// MediaRecorder webm has no seek index, and Firefox honors the
|
|
395
|
+
// fragment literally — the pending seek stalls playback a moment
|
|
396
|
+
// after play. preload="metadata" already paints the first frame in
|
|
397
|
+
// Chrome and Firefox; iOS shows the controls on a blank frame, which
|
|
398
|
+
// beats a player that pauses itself.
|
|
399
|
+
playback.src = state.existingVideoUrl;
|
|
394
400
|
wrap.appendChild(playback);
|
|
395
401
|
wrap.appendChild(attachedVideoChip(form, wrap, playback, function () {
|
|
396
402
|
state.removeExistingVideo = true;
|
|
@@ -1035,6 +1041,22 @@
|
|
|
1035
1041
|
".tml-record-label,.tml-chip-remove{color:#3b82f6}",
|
|
1036
1042
|
".tml-chip{background:rgba(59,130,246,.12)}",
|
|
1037
1043
|
".tml-hint,.tml-nps-legend,.tml-record-hint{color:#9aa2ab}",
|
|
1044
|
+
"}",
|
|
1045
|
+
// The dialog is the scrollable region; keep its scroll from chaining
|
|
1046
|
+
// into the host page (rubber-banding through the backdrop on touch).
|
|
1047
|
+
"#tml-dialog{overscroll-behavior:contain}",
|
|
1048
|
+
// Full-screen on mobile — no bottom sheet, no animation. Placed last,
|
|
1049
|
+
// with selectors at least as specific as the desktop rules above, so
|
|
1050
|
+
// these declarations win the cascade at equal specificity.
|
|
1051
|
+
"@media (max-width:480px){",
|
|
1052
|
+
"#tml-overlay{padding:0;align-items:stretch;justify-content:stretch}",
|
|
1053
|
+
"#tml-dialog{left:0;right:0;top:0;bottom:0;width:100%;max-width:none;",
|
|
1054
|
+
"height:100vh;height:100dvh;max-height:100dvh;border-radius:0;margin:0}",
|
|
1055
|
+
// 16px stops iOS Safari's auto-zoom when a field gets focus.
|
|
1056
|
+
"#tml-dialog textarea,#tml-dialog input[type=text],#tml-dialog input[type=email],#tml-dialog select{font-size:16px}",
|
|
1057
|
+
// The action row has no padding of its own; give it the home-indicator
|
|
1058
|
+
// safe area so Submit/Cancel never sit under the bar.
|
|
1059
|
+
"#tml-dialog .tml-actions{padding-bottom:calc(0px + env(safe-area-inset-bottom))}",
|
|
1038
1060
|
"}"
|
|
1039
1061
|
].join("");
|
|
1040
1062
|
var style = document.createElement("style");
|