profile
viewpoint
Brian Beck exogen @FormidableLabs Seattle, Washington, USA https://brianbeck.com

exogen/graphbrainz 118

A fully-featured GraphQL interface for the MusicBrainz API.

exogen/graphql-markdown 96

The easiest way to document your GraphQL schema.

exogen/badge-matrix 73

More advanced badges for projects using Travis or Sauce Labs

exogen/dotfiles 43

Mac, Vim, Bash, etc.

exogen/django-adminbrowse 41

[UNMAINTAINED] Add related object links and other useful features to the Django admin interface.

exogen/emojiboard 7

Emoji leaderboard for Slack

exogen/ava-nock 6

Like AVA snapshots but for HTTP requests.

exogen/graphbrainz-extension-spotify 6

Spotify GraphQL extension for GraphBrainz.

exogen/80sheep 4

ADC implementation

startedstevenmusumeche/reactlytics

started time in 8 days

issue openedvercel/next.js

Experimental scroll restoration flag does not restore position when returning from another origin

Bug report

Describe the bug

When using Link or Router to perform SPA-style navigation, the new scrollRestoration works as expected. But when navigating to another origin (or an internal route without using Link or Router), clicking Back does not restore the scroll position.

As far as I can tell this should work; it's not an inherent limitation of the History API. When I test out replaceState + Back without Next.js, the state object is correctly restored when returning from another site. And the docs confirm this:

Suppose now that the user navigates to http://google.com, then clicks the Back button. At this point, the URL bar will display http://mozilla.org/bar.html and history.state will contain the stateObj. The popstate event won't be fired because the page has been reloaded. The page itself will look like bar.html.

So, I'm guessing Next.js is doing something (maybe with the popstate event?) to prevent this from working.

To Reproduce

Steps to reproduce the behavior, please provide code snippets or a repository:

  1. Make a test page with links to another origin, or to an internal route without using Link.
  2. Scroll down to the link and click it.
  3. Press back

Expected behavior

Scroll position should be restored even for non-SPA style navigation.

Screenshots

If applicable, add screenshots to help explain your problem.

System information

  • Version of Next.js: 9.5.3

created time in 2 months

issue openedvercel/next.js

Experimental scrollRestoration flag causes browser to make a favicon request on every scroll event

Bug report

Describe the bug

When the experimental.scrollRestoration: true feature is enabled, the resulting replaceState triggered by each scroll event will (potentially depending on caching, I assume) cause Chrome to re-request the favicon URL.

(I'm not sure why Chrome would re-request that just for a replaceState, that doesn't seem necessary, but it's happening nonetheless.)

To Reproduce

  1. Enable experimental.scrollRestoration: true in your app.
  2. Start the app and open the Network panel.
  3. Scroll the page.

Expected behavior

Scrolling should not cause network requests.

Screenshots

Kapture 2020-08-29 at 15 32 47

System information

  • macOS
  • Chrome (maybe others)
  • Next.js 9.5.2

Additional context

Maybe a solution would be to capture the scroll position the moment before the page changes, instead of on every scroll event? Was that tried already?

created time in 2 months

startedamineo/t2-stat-parser

started time in 2 months

issue commentstorybookjs/storybook

React Context not working as expected

One thing I've noticed about the <StoryFn /> solution is that adjusting values with the Knobs addon causes the entire story to remount, not re-render. This limits the usefulness (in my stories at least) because the knob are often used to test animations and such – so if the story remounts, there's no animation since the state is completely reinitialized.

A better approach I've found is:

const Story = ({ storyFn }) => storyFn();

const myDecorator = storyFn => <Provider><Story storyFn={storyFn} /></Provider>;

That way, storyFn is called as a descendant of Provider, thus gets its context, and the story is not remounted when knobs change.

sofiageo

comment created time in 3 months

PublicEvent
more