Skip to content

Latest commit

 

History

History
157 lines (113 loc) · 4.02 KB

File metadata and controls

157 lines (113 loc) · 4.02 KB

Implementation Summary - Rise Journey Enhancements

Date: December 6, 2025

Changes Implemented

1. Video Link Support (VideoStream.jsx)

Added support for Google Meet and Hyperbeam URLs

Changes Made:

  • Updated detectStreamType() function to recognize:

    • Google Meet URLs (meet.google.com)
    • Hyperbeam URLs (hyperbeam.com)
  • Updated handleSubmit() function to handle these new platforms by passing URLs directly to the iframe embed

Supported Platforms:

  • ✅ YouTube (youtube.com, youtu.be)
  • ✅ Discord (discord.com)
  • ✅ Zoom (zoom.us)
  • Google Meet (meet.google.com) - NEW
  • Hyperbeam (hyperbeam.com/app/room) - NEW

Usage:

Users can now paste Google Meet or Hyperbeam URLs into the video link input, and the application will automatically detect and embed them.


2. Scripture Persistence (ScriptureStudy.jsx)

Implemented localStorage to persist scripture state across tab switches

Changes Made:

  • Added SCRIPTURE_STORAGE_KEY constant: 'yahudim_scripture_state'
  • Created loadScriptureFromStorage() function to restore state on mount
  • Created saveScriptureToStorage() function to save state after fetching verses
  • Modified fetchVerses() to save scripture data to localStorage

Persisted Data:

  • Book name
  • Start verse
  • End verse
  • Fetched verses array

Behavior:

  • Scripture content now persists when users switch tabs or refresh the page
  • Last viewed scripture is automatically restored on component mount
  • Data is stored in browser's localStorage

3. Markdown Export (ScriptureStudy.jsx)

Added offline markdown export functionality for scripture notes

Changes Made:

  • Created exportNoteAsMarkdown() function
  • Added new "📥 Export .md" button next to the Save button
  • Generates markdown files with the format:
    # [Title]
    
    **Verse Reference:** [verseRef]
    
    ## Notes
    
    [content]

Features:

  • Downloads note as .md file for offline use
  • Filename is sanitized version of the note title
  • Button is enabled only when content is present
  • Uses browser's Blob API for file generation

Button Layout:

  • Save button (pink-orange gradient)
  • Export .md button (blue-cyan gradient) - NEW
  • Cancel button (when editing)

Files Modified

  1. src/components/VideoStream.jsx

    • Backup created: VideoStream.jsx.bak
    • Added Google Meet and Hyperbeam support
  2. src/components/ScriptureStudy.jsx

    • Backup created: ScriptureStudy.jsx.bak
    • Added localStorage persistence
    • Added markdown export functionality

Testing Recommendations

VideoStream:

  1. Test with YouTube URL
  2. Test with Discord URL
  3. Test with Zoom URL
  4. Test with Google Meet URL (e.g., https://meet.google.com/xxx-xxxx-xxx)
  5. Test with Hyperbeam URL (e.g., https://hyperbeam.com/app/room/...)

Scripture Persistence:

  1. Fetch some verses
  2. Switch to another tab or component
  3. Return to Scripture Study - verses should still be displayed
  4. Refresh the page - verses should persist

Markdown Export:

  1. Enter a title (e.g., "Genesis Study")
  2. Enter a verse reference (e.g., "Genesis 1:1-3")
  3. Write some notes
  4. Click "📥 Export .md" button
  5. Check downloaded file contains properly formatted markdown

Build Instructions

To rebuild the application with these changes:

cd /home/ishaglcy/public_html/yahudim.app
npm run build

For development mode:

npm run dev

Backup Files

Original files have been backed up with .bak extension:

  • src/components/VideoStream.jsx.bak
  • src/components/ScriptureStudy.jsx.bak

To restore originals if needed:

cp src/components/VideoStream.jsx.bak src/components/VideoStream.jsx
cp src/components/ScriptureStudy.jsx.bak src/components/ScriptureStudy.jsx

Notes

  • All changes are backward compatible
  • No database schema changes required
  • No additional dependencies needed
  • LocalStorage is used for scripture persistence (client-side only)
  • Markdown export is purely client-side (no server interaction)