-
Notifications
You must be signed in to change notification settings - Fork 3
topic detail banner / subtopic logic revisions #1646
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
c6d6536 to
331bf90
Compare
a498b8a to
9f7a578
Compare
ChristopherChudzicki
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| currentHref={parentTopic?.channel_url} | ||
| /> | ||
| ) : ( | ||
| <BreadcrumbsInternal current={parentTopic?.name ?? ""} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion: The nature of our django apis is that many of them return null when something is missing (rather than undefined).
I don't think it's worth fighting that. We could just make the base Breadcrumbs component accept null for current and currentHref (from a JS perspective I suspect null works fine already; it's just TS that is being mad here.)
| alignItems: "end", | ||
| flexGrow: 0, | ||
| flexShrink: 0, | ||
| order: 2, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This got copied over from DefaultChannelTemplate: https://github.com/mitodl/mit-open/blob/d9ed99aa0f15f528f2ddbf9a0f963cdccfafd9a6/frontends/mit-learn/src/pages/ChannelPage/DefaultChannelTemplate.tsx#L28
My best guess is that this was done to try and control the position of the channel controls container. I agree that it doesn't do anything and have removed it from both places.
| backgroundImage: backgroundDim | ||
| ? `linear-gradient(rgba(0 0 0 / ${backgroundDim}%), rgba(0 0 0 / ${backgroundDim}%)), url('${backgroundUrl}')` | ||
| : `url(${backgroundUrl})`, | ||
| backgroundSize: "cover", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the removal of the background size cover is causing the breakage at the particular width that chris had pointed out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, @mbilalmughal and I had a back and forth about the background. The 140% size rule was for ultrawide screens. I moved the rule to only apply to lg and above, and for everything else reset it to default with the position centered and top aligned.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems to me that whether the appropriate value is 140%, 120%, 180%, etc, is going to vary image by image. cover seems like a reasonable universal default, but a percentage doesn't to me.
I'd suggest if we really want this to be 140%, it should be set only on the topic page, and not site-wide.
Banner has a backgroundSize prop, though it seems currently unused. Maybe that would be a good place for this?
shanbady
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shanbady This is because you are viewing a subtopic, and as part of this PR the subtopic shows the parent topic breadcrumbs. The last one is clickable to return to the parent topic. |
6ba031f to
f9a3cfa
Compare
|
@ChristopherChudzicki @shanbady This is ready for another look whenever y'all have a moment |
|
@gumaerc dismissed my review. will leave the green light to @ChristopherChudzicki |
3650225 to
7e49e40
Compare
| const subTopicChannel = subTopicChannels[0] | ||
| const filteredSubTopics = subTopics?.results.filter( | ||
| (t) => | ||
| t.name.replace(/\s/g, "-") !== subTopicChannel.name.replace(/\s/g, "-"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could be t.name !== subtopicChannel.title ... topic name and channel title are equivalent. (Topic model should use title, I guess. Oh well).
ChristopherChudzicki
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good. Some minor comments, and two requests (remove the unused filter in python code, and take another look at the backgroundSize thing).
| return parentTopic?.channel_url ? ( | ||
| <BreadcrumbsInternal | ||
| current={parentTopic?.name} | ||
| currentHref={parentTopic?.channel_url} | ||
| /> | ||
| ) : ( | ||
| <BreadcrumbsInternal current={parentTopic?.name} /> | ||
| ) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| return parentTopic?.channel_url ? ( | |
| <BreadcrumbsInternal | |
| current={parentTopic?.name} | |
| currentHref={parentTopic?.channel_url} | |
| /> | |
| ) : ( | |
| <BreadcrumbsInternal current={parentTopic?.name} /> | |
| ) | |
| } | |
| return ( | |
| <BreadcrumbsInternal | |
| current={parentTopic?.name} | |
| currentHref={parentTopic?.channel_url} | |
| /> | |
| ) |
| backgroundImage: backgroundDim | ||
| ? `linear-gradient(rgba(0 0 0 / ${backgroundDim}%), rgba(0 0 0 / ${backgroundDim}%)), url('${backgroundUrl}')` | ||
| : `url(${backgroundUrl})`, | ||
| backgroundSize: "cover", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems to me that whether the appropriate value is 140%, 120%, 180%, etc, is going to vary image by image. cover seems like a reasonable universal default, but a percentage doesn't to me.
I'd suggest if we really want this to be 140%, it should be set only on the topic page, and not site-wide.
Banner has a backgroundSize prop, though it seems currently unused. Maybe that would be a good place for this?
learning_resources/filters.py
Outdated
| def filter_id(self, queryset, _, values): | ||
| """Filter by topic ID""" | ||
| return multi_or_filter(queryset, "id", values) | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be removed, right?
@mbilalmughal Wanted the 140% size rule not just for topics but for any banner that falls back to using the default "steps" image. From what I understand, we changed the image itself to display better on very large screens. The |
|
@ChristopherChudzicki This is ready for another look, but read the comment above about the background image size rules. |
…nnels query "related topics" aka the topic's siblings
for more information, see https://pre-commit.ci
…f, and only apply large and up 140% background size if the default image is being used
9cd4239 to
0dc711c
Compare
ChristopherChudzicki
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
* Add location field to LearningResource and LearningResourceRun models (#1604) * Always delete past events during ETL, and filter them out from api results too just in case (#1660) * Release 0.21.1 * Release date for 0.21.1 * remove unnecessary padding adjustment on Input base styles (#1666) * remove unnecessary padding adjustment on Input base styles * adjust actual textarea padding to match Figma * Content File Score Adjustment (#1667) * Release 0.21.2 * Restore program letter intercept view (#1643) * Restore program letter intercept view * Generate schema * Fix test * fixing import * Revert "fixing import" This reverts commit cf56807. --------- Co-authored-by: shankar ambady <ambady@mit.edu> * Release date for 0.21.2 * topic detail banner / subtopic logic revisions (#1646) * add new darker chip variant * move subtopic display to the banner * remove max width on banner subtitle texts * query subtopics only on parent topic channels, and on child topic channels query "related topics" aka the topic's siblings * don't display the current topic in related topics * show parent topic breadcrumbs on child topic channel pages * fix tests * only do subtopics mocking if necessary * fix editchannelpage test * move action buttons under the title on mobile * fix test * add new default channel background image * "toopics" * fix background position * remove accidentally committed file * fix background size on mobile * remove unnecessary order css rule * fix banner background on mobile * fix breadcrumb props * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove unnecessary topic id filter * remove unnecessary breadcrumb fallback * set the default banner background image in the banner component itself, and only apply large and up 140% background size if the default image is being used * properly set default background image --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Update Yarn to v4.5.0 (#1624) * Update Yarn to v4.5.0 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Clear Cache on Deploy (#1668) * adding initial cache clear command * adding cache clear command to heroku release script * fix docstrings * removing invalid flag from clear cache command (#1675) * prevent featured course carousel from re-randomizing (#1673) * use skipFeatured when invalidating userlists / learning paths after update * add a new function for updating query data for user_list_parents and learning_path_parents on the featured courses list when either is edited without re-randomizing * fix learning path invalidations * fix test * Shuffling around where the search_update event is fired so it happens in more places (#1679) - Changed HeroSearch to use the SearchField component instead of SearchInput, so we get the event capture stuff - Updated SearchInput to not require setPage (for use on the homepage) - Moved facet events out of the SearchPage and into SearchDisplay so they get called on other pages that use it - Also trigger the facet events on more things - should also now get sorting changes, choosing between categories, and clearing facets * Reinstate background steps image --------- Co-authored-by: Matt Bertrand <mrbertrand@gmail.com> Co-authored-by: Doof <mitx-devops@mit.edu> Co-authored-by: Carey P Gumaer <gumaerc@mit.edu> Co-authored-by: Anastasia Beglova <abeglova@mit.edu> Co-authored-by: Nathan Levesque <rhysyngsun@users.noreply.github.com> Co-authored-by: shankar ambady <ambady@mit.edu> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Shankar Ambady <shanbady@gmail.com> Co-authored-by: James Kachel <james@jkachel.com>
* Merge `main` into `nextjs` (#1687) * Add location field to LearningResource and LearningResourceRun models (#1604) * Always delete past events during ETL, and filter them out from api results too just in case (#1660) * Release 0.21.1 * Release date for 0.21.1 * remove unnecessary padding adjustment on Input base styles (#1666) * remove unnecessary padding adjustment on Input base styles * adjust actual textarea padding to match Figma * Content File Score Adjustment (#1667) * Release 0.21.2 * Restore program letter intercept view (#1643) * Restore program letter intercept view * Generate schema * Fix test * fixing import * Revert "fixing import" This reverts commit cf56807. --------- Co-authored-by: shankar ambady <ambady@mit.edu> * Release date for 0.21.2 * topic detail banner / subtopic logic revisions (#1646) * add new darker chip variant * move subtopic display to the banner * remove max width on banner subtitle texts * query subtopics only on parent topic channels, and on child topic channels query "related topics" aka the topic's siblings * don't display the current topic in related topics * show parent topic breadcrumbs on child topic channel pages * fix tests * only do subtopics mocking if necessary * fix editchannelpage test * move action buttons under the title on mobile * fix test * add new default channel background image * "toopics" * fix background position * remove accidentally committed file * fix background size on mobile * remove unnecessary order css rule * fix banner background on mobile * fix breadcrumb props * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove unnecessary topic id filter * remove unnecessary breadcrumb fallback * set the default banner background image in the banner component itself, and only apply large and up 140% background size if the default image is being used * properly set default background image --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Update Yarn to v4.5.0 (#1624) * Update Yarn to v4.5.0 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Clear Cache on Deploy (#1668) * adding initial cache clear command * adding cache clear command to heroku release script * fix docstrings * removing invalid flag from clear cache command (#1675) * prevent featured course carousel from re-randomizing (#1673) * use skipFeatured when invalidating userlists / learning paths after update * add a new function for updating query data for user_list_parents and learning_path_parents on the featured courses list when either is edited without re-randomizing * fix learning path invalidations * fix test * Shuffling around where the search_update event is fired so it happens in more places (#1679) - Changed HeroSearch to use the SearchField component instead of SearchInput, so we get the event capture stuff - Updated SearchInput to not require setPage (for use on the homepage) - Moved facet events out of the SearchPage and into SearchDisplay so they get called on other pages that use it - Also trigger the facet events on more things - should also now get sorting changes, choosing between categories, and clearing facets * Reinstate background steps image --------- Co-authored-by: Matt Bertrand <mrbertrand@gmail.com> Co-authored-by: Doof <mitx-devops@mit.edu> Co-authored-by: Carey P Gumaer <gumaerc@mit.edu> Co-authored-by: Anastasia Beglova <abeglova@mit.edu> Co-authored-by: Nathan Levesque <rhysyngsun@users.noreply.github.com> Co-authored-by: shankar ambady <ambady@mit.edu> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Shankar Ambady <shanbady@gmail.com> Co-authored-by: James Kachel <james@jkachel.com> * restoring up and down chevrons (#1690) * Config to set cache control headers (#1700) * Middleware to set cache headers * Set headers in the config * Upgrade Next.js * Regex to exclude paths with a file extension to apply only to routes * Remove middleware file * Instruct to only store in shared cache (not browsers) * Copy yarn releases to the Docker container (fixes build) (#1703) * Copy yarn releases * Build the docker image on all push * NextJS - re-enable program letter tests (#1696) * fixing program letter template * re-enabling test * adding space * remove unnecessary webpack customizations (#1704) * Increase cache duration (#1705) * Increase cache durations * Update comment * Prod deployment. Add Posthog vars * NextJS Sentry Integration (#1701) * configure sentry, fix error pages * add env vars to CI * add global styles to global-error * TEMPORARY self destruct button * cleanup * cleanup error boundary, other misc cleanup * remove a few useless things * add a simple test i guess * remove intentional error triggers * Appzi env vars and Sentry config * Move deploy jobs to respective workflow. Docker build for dry run --------- Co-authored-by: Matt Bertrand <mrbertrand@gmail.com> Co-authored-by: Doof <mitx-devops@mit.edu> Co-authored-by: Carey P Gumaer <gumaerc@mit.edu> Co-authored-by: Anastasia Beglova <abeglova@mit.edu> Co-authored-by: Nathan Levesque <rhysyngsun@users.noreply.github.com> Co-authored-by: shankar ambady <ambady@mit.edu> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Shankar Ambady <shanbady@gmail.com> Co-authored-by: James Kachel <james@jkachel.com> Co-authored-by: Chris Chudzicki <christopher.chudzicki@gmail.com>






What are the relevant tickets?
Closes https://github.com/mitodl/hq/issues/5361
Description (What does it do?)
This PR moves some things around relating to topic channel pages:
ChannelPageTemplatecomponent created to give topic channels their own templateScreenshots (if appropriate):
How can this be tested?
mit-learn