Show the length of videos and animated posts in the thumbnail. The length is shown the top left corner in MM:SS format. This replaces the play button icon. Show a speaker icon instead of a music note icon for posts with sound. Doing this requires doing `.includes(:media_asset)` in a bunch of places to avoid N+1 queries when we access the post's duration.
Components
Components are used to encapsulate common UI widgets used throughout the site. This includes things like comments, tag lists, post thumbnails, paginators, and other things used repeatedly throughout the site. Components encapsulate a widget's HTML, CSS, and Javascript together so that all the code for a component is in a single place.
This uses the ViewComponent library.
Components are similar in concept to React components.