* flare tag line height
* .
* new tabs on home
* instantclick
* Some JS cleanup for mobile view select event handler.
* eslint cleanup
* select arrow color
* quotes
* quotes
* .
* .
* omg
* .
* finally
* focus visible
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Rename positive_reactions_count to public_reactions_count
* Add positive reactions count back in so we can remove it
* Use public_category method for reactions
* Add positive_reactions_count in case any old caches rely on it
* Add positive_rxn_count to account for API endpoints
* Remove unused method
* One more spot...
* Add method back in because of caches
* Update specs to match new functionality
* Fix typo
* Remove unused methods
* Fix Runkit tags not being activated when comment is added
* Runkit tag activation was ran once, on page load. I've changed it to
run on on comment preview and submit.
* It was necessary to add a check to skip already activated Runkit
tags. The code didn't take into account that a tag could be already
processed, and would just crash.
* Fix Runkit tags and add tests
* Add test for previewing article with Runkit tag
* "Fix CodeClimate not finding waitForRunkitAndActivateTags()
* Refactor a test for readability
* Make Rubocop happy
* Improve test for previewing article with Runkit tag
* Use one method for determining active Runkit tags
* Defer loading of JS from embed.runkit.com
* Add utility function dynamicallyLoadScript(url)
* Switch to dynamic loading of Runkit
* parsed content code block is also hidden now to avoid displaying <code /> block before runkit iframe loads.
* Fix Runkit test
* Remove Runkit script caching in v2 form
* Use <%== instead of .html_safe in v2 form
* Update app/assets/javascripts/utilities/dynamicallyLoadScript.js
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* feed cards
* frontend
* preactify
* preactify
* .
* fix
* fixing things and adding dropdown
* whoops.
* whoops 2.
* revert body bg color change
* search snippet
* search snippet
* get rid of featured article
* get rid of featured article...
* cover to its own component
* videos
* videos
* reading time
* small-save-filled asset
* author adjustments
* adjustments
* Author --> Meta
* whoops.
* loader
* logged out state
* .
* dropping what's not needed for now
* better name for cover
* get rid of nav overflow
* bringin comments placeholder back
* bringing comments placeholder back
* publish date
* fix
* date
* .
* save button icon
* ghost button
* lets skip the icon for saving for now
* more buttons
* counting logic
* Display top comments on homepage feed
* Comment list and item components
* Remove 'Top Comments' title
* Remove subscribe button, add reading time
* Update snapshots and tests
* Fix article and follower scrolling
* Added reading time
* (Try) to do flare tags
* Button component from Pawel
* More button styles from Pawel
* Comment count style from Pawel
* Handle empty parens for age on older articles
* Dont show 'more comment' button for more than 2 comments
* cover ratio
* flare tag
* cover fix
* fix buttons
* more button fixes
* tags fix
* responsiveness fix
* reading time + a bit of responsiveness
* Reading time in more places
* snapshots
* default color for flare tag
* Update CommentsList test snapshot with new styles
* fixing search results
* fixing buttons
* Fix podcast card tests by updating snapshots
* Line clamping for top comments
* Reflect save button state after click before mouseout
* Now the entire feed card is clickable. (#7638)
* Now pointer cursor is only on feed posts. (#7727)
* Revert podcast card styling
* Update test snapshot
* merge
* Fix rspec on feed page
* Reduce complexity of class check for feed card clicking
* PR feedback/fixes
* Fix featured article test and snapshot
* Last minute test tweaks
* clean up crayons
* padding issue + empty div
* Correct merge error
* Fix search results tests
* Test fixes and snapshot updates
* themes
* podcasts colors
Co-authored-by: ludwiczakpawel <ludwiczakpawel@gmail.com>
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* First commit Android Bridge for Podcasts
* Working Android Bridge controls
* Adds Android metadata message & cleans up a couple longs functions
* Brings back use strict
* Cleans up a bit the conditional for either ios/android native players
* Adds Clipboard Async API & makes use of Android Native Bridge interface for write post image copy to clipboard
* Checks for clipboard api support before trying to use it
* Adds support for comment dropdown copy link
* Adds AndroidBridge to globals definition
* feat: make the from in the email to be dynamic
* feat: hardcoded mailer dev.to
* feat: oops hardcoded email addresses in the terms
* chore: remove some whitespace
* update editor guide
* feat: new reply email
* feat: new message mailer
* feat: new follower email
* feat: capitalize the button
* feat: rename the link
* feat: capitalize the button
* feat: generalize the urls
* feat: generalise the url
* feat: dynamic DEV
* feat: update the specs
* feat: DEV digest generalisation part 1
* fix: the method is accessed by tag_url and so the default parameter needs to be set at this level and not at self.tag
* fix: use the tag model instance instead of passing through just the tag name (so that we can use tag_url)
* chore: make code climate happy
* chore: more robocop
* feat: add a default url back for self.tag
* test: fix the feedback helper spec
* fix: spec to be general
* fix: oops :(
* refactor: user_settings_path
* chore: use code_of_conduct_path
* chore: robocop
* chore: use connect path
* chore; use the notifications symbol
* chore: misc path
* feat: simplify url
* feat/fix: change the order of the helpers and use user_url
* chore: user_url
* capitalise
* chore: update article path
* Moves podcast episode metadata to decorator
* Updates the podcast episode metadata to use image_url
* Syntax tweaks, initializeMedia() fix for initialized audio & brought back use strict
* add tons of colors
* add tons of colors
* moving cheese around and prepping for new theming system
* documenting
* .
* moving theme code to own files
* replacing some variables
* whitespaces
* replacing another batch of variables
* get rid of another variable
* replace loading animation variable with one-fits-all-sizes
* get rid of theme-anchor-color
* remove code colors variables
* another batch of variables replaced
* mostly bringing in variables for haxor theme
* remove invert-image variable for chat
* remove another inver-image variable
* forgot to remove reaction-background variable
* remove border variable
* series
* .
* remove another variable
* remove another variable..
* another batch of variables
* and more...
* header updates
* i forgot to commits things in my PR....
* fix border
* .
* simplifyuing placeholder
* responsiveness
* responsive
* search fix
* fixing prefix-less classes
* increase clickable area
* small style updates for pink theme
* tests
* Fix test
* responsive dropdown
* tiny fixes
* generator rewritten
* dropdown reworked a little
* adjustments
* fix pwa
Co-authored-by: rhymes <rhymesete@gmail.com>
* Adds Podcast Episode metadata as JSON to avoid scraping the HTML
* Uses app_url helper instead of app_protocol_and_domain string interpolation for podcastImageUrl
* Adds podcast_episode#mobile_player_metadata, cleans eslint/codeclimate mess I made & adds tests
* Removes an extra line to fix codeclimate
* Removes unnecessary return
* First experiment with supressing audio playback on native iOS
* Adds load audio message posting
* First version of refactor working on web
* handlePodcastMessages now receives messages sent into JS from native iOS app
* bump back to "v2" local storage key or playback state
* terminatePodcastBar now clears the currentAudioState
* function getMediaState now initializeMedia, fixes audioExistAndIsPlaying for web, better playAudio error management & others
* Fixes bug in playAudio() & clears audioInitialized when no Podcast was initialized
* Codeclimate tweaks
* Reorders functions to comply with codeclimate
* More codeclimate reordering & fixes
* Upgrades the audio bridge messages to JSON instead of strings
* codeclimate doh
* refactor: add an eventListener for click
* chore: oops
* feat: add expiry for the cookie 5 days from now
* chore: update comment
* chore: add strict back
* wip
* Removed reference to cached_tag_list as the feed enpoint only returns tag_list now.
* Removed reference to cached_properties.
* Updated <CommentsCount /> and <TagList /> to support additinal className
* wip
* wip
* Undid init scrolling for Algolia articles
* Converted homePageFeed.jsx to an ERB template to access Sprockets.
* Now the homePageFeed.jsx files is an ERB so it can load Sprockets assets.
* wip
* Removed accidental commit of debugger statement in ERB.
* Now different feed time frames are loaded based on the homepage feed tab clicked.
* Prevent default Algolia paging when on the homepage.
* Added a tiny comment about feed time frame.
* Now feed loads properly for each time frame on home page.
* prop name refactor.
* Reneabled default Algolia scrolling.
* On the homepage, we no longer overwrite article HTML with Algolia data for initial articles.
* Assumption is the proper URL for main_image of featured article will be sent in the feed.
* Fixed Google Analytics for featured article.
* No longer need the new-feed ID for checking if we're on the homepage.
* Trying to make codeclimate happy.
* wip
* Removed reference to cached_tag_list as the feed enpoint only returns tag_list now.
* Removed reference to cached_properties.
* Updated <CommentsCount /> and <TagList /> to support additinal className
* wip
* wip
* Undid init scrolling for Algolia articles
* Converted homePageFeed.jsx to an ERB template to access Sprockets.
* Now the homePageFeed.jsx files is an ERB so it can load Sprockets assets.
* wip
* Removed accidental commit of debugger statement in ERB.
* Now different feed time frames are loaded based on the homepage feed tab clicked.
* Prevent default Algolia paging when on the homepage.
* Added a tiny comment about feed time frame.
* Now feed loads properly for each time frame on home page.
* prop name refactor.
* Reneabled default Algolia scrolling.
* On the homepage, we no longer overwrite article HTML with Algolia data for initial articles.
* Assumption is the proper URL for main_image of featured article will be sent in the feed.
* Fixed Google Analytics for featured article.
* No longer need the new-feed ID for checking if we're on the homepage.
* Added postcst episodes to <Feed /> state.
* Breaking up Article.jsx to make codeclimate happy.
* wip
* Created the <TodaysPodcastEpisodes /> and <PodcastEpisode /> components.
* Fixed issues with some components that were updated for the <FeaturedArticle />
* Added tests for <FeaturedArticle />
* Barreled up <FeaturedArticle />
* Added Storybook stories for <FeaturedArticle />
* Featured articles don't display org, so removed that test.
* Added proper today's podcasts components to feed.
* Converted some leftover ERB + removed pro checkmark as it doesn't exist yet.
* Now logic is same as master for feed timeframe.
* Updated <FeaturedArticle /> snapshots.
* On frontpage, bookmark button state is managed by Preact components now.
* bookmarkedFeedItems is now a prop on <Feed />.
* Fixed logic check for initializing reading list icons.
* Now <Article /> and <FeaturedArticle /> receive a bookmarkClick prop.
* Removed beginnings of scroll handler in <Feed /> as we're using what's there already for now.
* Removed logic to not show main image on other time frame feeds as it was not correct.
* Fixed issue with 0 rendering when no podcast episodes in feed.
* Converted <SaveButton /> to a stateful component.
* wip - <Feed /> render prop now passes bookmarked feed item ID set and a click event.
* Moved FEED_ICONS to an export so it's easier to use JSX/JS in <Feed />
* Moved <Feed /> into article components.
* Now reading list save buttons work properly in Preact components.
* Fixed issue with Save buttons in Algolia paging/<Feed />
* Updated snapshots.
* Took <Feed /> out of articles barrel file as jest was trying to import FEED_ICONs which is an ERB template.
* Now the Preact feed is dynamically imported.
* Now the Preact <Feed /> only loads for a logged on user.
* Fixed <FeaturedArticle /> so that the save button behaves properly now.
* Updated article stories for Storybook.
* Putting this back to the order it was because I've removed my code changes for this block.
* Fixed when renderFeed is imported for a logged on user.
* Add podcasts to feed and render home from server
* Add padding to feature laoding div
* Update tests
* Add more loading articles
* Fix conflicts
* Add readinglist javascript to initscrolling
* Ensure first article is one with image
* Organize feed items outside of feed instead of in it
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
Co-authored-by: Josh Puetz <josh@grorichpuetz.com>
* feat: set up an event handler that will allow close the banner and set a cookie when you've closed it
* feat: return early if the cookie says it shouldn't be shown
* refactor: make the names more general so that they can be applied to other campaigns