vidpipe 1.3.14 → 1.3.16

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.
@@ -379,6 +379,32 @@
379
379
  </div>`
380
380
  }
381
381
 
382
+ function ThumbnailPreview({ group }) {
383
+ const firstItem = group.items[0]
384
+ if (!firstItem) return null
385
+ const thumbnailUrl = '/media/queue/' + encodeURIComponent(firstItem.id) + '/thumbnail.png'
386
+ const [loaded, setLoaded] = useState(false)
387
+ const [error, setError] = useState(false)
388
+
389
+ if (error) return null
390
+
391
+ return html`
392
+ <div class="px-5 pb-3">
393
+ <div class="text-xs font-semibold text-gray-400 mb-2">🖼️ Thumbnail:</div>
394
+ <div class="rounded-xl overflow-hidden bg-black/20 border border-white/10 inline-block">
395
+ <img
396
+ src=${thumbnailUrl}
397
+ alt="Thumbnail preview"
398
+ class="max-h-48 w-auto object-contain rounded-xl"
399
+ style=${{ display: loaded ? 'block' : 'none' }}
400
+ onLoad=${() => setLoaded(true)}
401
+ onError=${() => setError(true)}
402
+ />
403
+ ${!loaded && !error && html`<div class="h-24 w-40 flex items-center justify-center text-gray-500 text-xs">Loading...</div>`}
404
+ </div>
405
+ </div>`
406
+ }
407
+
382
408
  function PlatformCheckboxes({ group, selectedPlatforms, onToggle, accounts }) {
383
409
  return html`
384
410
  <div class="px-5 pb-3">
@@ -423,13 +449,27 @@
423
449
  }
424
450
 
425
451
  function PostContentPreview({ group }) {
426
- const firstItem = group.items[0]
427
- const content = firstItem.postContent || ''
428
452
  return html`
429
453
  <div class="px-5 pb-3">
430
- <div class="text-xs font-semibold text-gray-400 mb-1">Post preview:</div>
431
- <div class="text-sm leading-relaxed text-gray-200 whitespace-pre-wrap break-words max-h-32 overflow-y-auto">
432
- ${truncate(content, 300)}
454
+ <div class="text-xs font-semibold text-gray-400 mb-2">📝 Posts per platform:</div>
455
+ <div class="space-y-3">
456
+ ${group.items.map(item => {
457
+ const platform = normalizePlatform(item.metadata.platform)
458
+ const cfg = PLATFORMS[platform] || { icon: '❓', color: '#888', name: platform }
459
+ const content = item.postContent || ''
460
+ return html`
461
+ <div class="rounded-lg border border-white/10 bg-white/5 overflow-hidden">
462
+ <div class="flex items-center gap-2 px-3 py-1.5 border-b border-white/10 bg-white/5">
463
+ <span class="text-sm">${cfg.icon}</span>
464
+ <span class="text-xs font-semibold" style="color: ${cfg.color}">${cfg.name}</span>
465
+ <span class="text-xs text-gray-500 ml-auto">${content.length} chars</span>
466
+ </div>
467
+ <div class="text-sm leading-relaxed text-gray-300 whitespace-pre-wrap break-words max-h-40 overflow-y-auto px-3 py-2">
468
+ ${content}
469
+ </div>
470
+ </div>
471
+ `
472
+ })}
433
473
  </div>
434
474
  </div>`
435
475
  }
@@ -497,6 +537,7 @@
497
537
  <!-- Scrollable middle: video + checkboxes + preview -->
498
538
  <div class="flex-1 overflow-y-auto min-h-0">
499
539
  <${VideoPlayer} group=${group} />
540
+ <${ThumbnailPreview} group=${group} />
500
541
  <${PlatformCheckboxes}
501
542
  group=${group}
502
543
  selectedPlatforms=${selectedPlatforms}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vidpipe",
3
- "version": "1.3.14",
3
+ "version": "1.3.16",
4
4
  "description": "AI-powered pipeline that watches for video recordings and generates transcripts, summaries, short clips, and social media posts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",