@@ -505,11 +505,34 @@ const authorEl = getElement("author");
505505const newQuoteBtn = getElement ( "new-quote" ) ;
506506const autoPlayToggle = getElement ( "auto-play-toggle" ) ;
507507const autoPlayStatus = getElement ( "auto-play-status" ) ;
508+ const toggleQuoteBtn = getElement ( "toggle-quote" ) ;
508509
509510newQuoteBtn . addEventListener ( "click" , showRandomQuote ) ;
510511
511512let autoPlayInterval = null ;
512513
514+ let isQuoteExpanded = false ;
515+
516+ function updateQuoteToggleVisibility ( ) {
517+ if ( quoteEl . scrollHeight <= quoteEl . clientHeight ) {
518+ toggleQuoteBtn . classList . add ( "hidden" ) ;
519+ } else {
520+ toggleQuoteBtn . classList . remove ( "hidden" ) ;
521+ }
522+ }
523+
524+ toggleQuoteBtn . addEventListener ( "click" , ( ) => {
525+ if ( isQuoteExpanded ) {
526+ quoteEl . classList . add ( "quote-clamped" ) ;
527+ toggleQuoteBtn . innerText = "Show more" ;
528+ isQuoteExpanded = false ;
529+ } else {
530+ quoteEl . classList . remove ( "quote-clamped" ) ;
531+ toggleQuoteBtn . innerText = "Show less" ;
532+ isQuoteExpanded = true ;
533+ }
534+ } ) ;
535+
513536autoPlayToggle . addEventListener ( "click" , ( ) => {
514537 if ( autoPlayToggle . checked ) {
515538 autoPlayStatus . innerText = "auto-play: ON" ;
@@ -527,8 +550,13 @@ function showRandomQuote() {
527550 const randomQuote = pickFromArray ( quotes ) ;
528551
529552 quoteEl . innerText = randomQuote . quote ;
530-
531553 authorEl . innerText = randomQuote . author ;
554+
555+ isQuoteExpanded = false ;
556+ quoteEl . classList . add ( "quote-clamped" ) ;
557+ toggleQuoteBtn . innerText = "Show more" ;
558+
559+ updateQuoteToggleVisibility ( ) ;
532560}
533561
534562showRandomQuote ( ) ;
0 commit comments