Hook into viewport change?

There is no dedicated hook or event for this to listen for. Instead use the same data core uses to figure this out:

select( 'core/editor' ).getDeviceType()

e.g. in a react component:

const { deviceType } = useSelect( ( select ) => select( 'core/editor' ).getDeviceType(), [] );
return <h1>{ deviceType }</h1>;

Then you can declare deviceType a dependency on any effect or reducer hooks you have

Did you mean __experimentalGetPreviewDeviceType to pull the data from central data ? –

If you do this you’ll get a warning that it’s deprecated and to use getDeviceType instead.

If you wanted to instead try to listen for the change of the event without using useSelect, you’d need to:

  • register to watch core/editor via wp.data‘s subscribe method
  • every time core/editor changes you’d need to double check the device type value to see if it has changed ( you can’t subscribe to portions of the store, it’s only the entire store )
  • when the store changes, and the device type no longer matches your own copy, update your copy of the data
    • note that this copy would need to be in a data store, it can’t be in react state
    • you would then need useSelect to fetch your copy, so why bother?
  • double check this on every WP release and Gutenberg plugin update as it might change

What Are Device Types?

This may not work how you expect it to, there are 3 device types values, Mobile, Desktop, and Tablet, which are fed into useResizeCanvas:

https://github.com/WordPress/gutenberg/blob/89e926db36949c9c409825fa810b0073421696e0/packages/block-editor/src/components/use-resize-canvas/index.js#L13

This hook then hardcodes the canvas size of the editor based on those 3 strings. There’s no configuring these to match your themes breakpoints, and there’s no “system” to hook into, or ways to add more.

None of this translates to the PHP/server side, or shows up in themes. There are no ways to store settings on a site/block/template for each device type, it’s just how the editor knows which canvas size to show

deneme bonusu veren sitelerbahis siteleripulibet girişdeneme bonusutürkçe altyazılı pornocanlı bahis casinocanlı bahis casino siteleriOnwin Güncel Girişholiganbetholiganbet girişholiganbet güncel giriş