Skip to content
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

Localize schema for wp api client #1498

Conversation

adamsilverstein
Copy link
Member

Fixes #1298.

  • Localize the WP-API schema so the client can initialize immediately, without making an ajax request.
  • Remove the wait for wp.api.init - the client is now ready immediately after loading and this is no longer required
  • Add a filter to the wp-api settings so developers can adjust the default settings used,

Copy link
Member

@nylen nylen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice enhancement for the short- to medium-term, avoids an API request on load.

Longer-term, I wonder if we can do a better job of providing this functionality in core. The wp_deregister_script / wp_register_script dance seems like a bit of a hack.


/** This filter is documented in wp-includes/rest-api.php */
do_action( 'rest_api_init', $wp_rest_server );
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use rest_do_request instead of $wp_rest_server->dispatch, as done elsewhere in the codebase.

*
* @param array $settings The WP-API JS Client settings.
*/
$settings = apply_filters( 'wp_api_js_client_settings', $settings );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be a Gutenberg-specific filter name, no?

Copy link
Member

@westonruter westonruter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This reminds me of WP-API/client-js#68

global $wp_rest_server;

// Ensure the rest server is initialized.
if ( empty( $wp_rest_server ) ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this block not be replaced with $wp_rest_server = rest_get_server(), and then eliminate the global?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even better: rest_do_request as noted above

@nylen
Copy link
Member

nylen commented Jul 9, 2017

In general I am not very fond of the fact that this operation (fetching the entire schema) is necessary at all. Whether it's done on the client side through an API call, or pre-initialized on the server side, this is a very expensive operation.

@aduth
Copy link
Member

aduth commented Aug 1, 2017

Superseded by #2057

@aduth aduth closed this Aug 1, 2017
Tug added a commit that referenced this pull request Jan 6, 2020
* Use string-array instead of plurals tag in strings.xml

See https://github.com/GlotPress/GlotPress-WP/blob/master/gp-includes/formats/format-android.php

* Update string files

* Update scripts to minimize changes in git diff and keep the same context for android

* Exclude strings from tests

* Fix lint errors

* Bump version to 1.17.1

* Update gutenberg ref following 1.17 merge to gutenberg master

* Update gutenberg ref

* Remove declaration on bridge of unused methods.

* Added bridge code for gutenberg to request a native fullscreen preview for for an image from a URL on iOS.

* Updating bundle and gutenberg reference.

* Updated release notes.

* Update gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Update GB reference.

* Updating bundle after catching up branch and gutenberg submodule.

* Update gutenberg ref

* Update release notes.

* Update UI test

* Pass postType as initial prop on iOS

* Pass postType down to Editor

* Allow Android to set the post type

* Updating gutenberg reference.

* Removed duplicate line from merge.

* updafe test files and iOS version for running locally with xcode 11

* Update gutenberg ref

* Update gutenberg ref

* Update aztec to version that support reversed and start on lists.

* Update Gutenberg to version where list settings are active in native.

* update block list check and capabilities

* replace double click on android

* fix block insertion timeout

* update branch with develop

* Update gutenberg ref

* Update package.json and JS bundle for 1.18.0 release

* Update Gutenberg

* Update Gutenberg

* update gutenberg ref

* Update GB-reference.

* Update release notes.

* revert caps to iPhone Simulator

* Update Gutenberg ref

* Update Release notes

* Update gutenberg/ reference

* Update bundles

* Update GB reference.

* Fix spacing

* Add static method to Media class to create instance using mimeType

* Add flag to track when appending multiple selected media items as blocks

* Introduce mediaSelectionCancelled method in WPAndroidGlueCode

* Set flag to append blocks when multiple = false is not respected

* Only use appendUploadMediaFiles plural version

* Update gutenberg ref

* Update to latest Gutenberg master

* Patch jsdom to implement Element.closest()

* Bring back changes on package.json from 1.7.1

* Add docstring to the function

* Return null as per https://dom.spec.whatwg.org/#dom-element-closest

* Update Aztec version.

* Update GB reference.

* Update gutenberg ref

* Update RELEASE-NOTES.txt

* Update GB reference

* Improve code block style

* Update GB reference.

* Update gutenberg ref

* Update Media mimeType truncation to use enum names

* Add Javadoc for mAppendsMultipleSelectedToSiblingBlocks flag

* Set appends to sibling blocks flag explicitly for all requests

* Add clarifying comment for special block append handling

* Remove singular (unused) appendMedia method

* Update GB reference.

* Update GB reference to master.

* Set appends to sibling blocks flag explicitly for other media pick

* Update GB reference.

* Update GB reference.

* Use lowercase for Media mimeType truncation

* Update Gutenberg

* Update Gutenberg

* Update Gutenberg ref - after fix for caption alignment

* Update bundles

* Point to aztecVersion hash which supports list with start and reverse attribute

* Update bundle and gutenberg ref - fix disappearing image

* Update GB reference.

* Update GB reference.

* Update GB reference.

* Update Gutenberg

* Update Gutenberg ref

* Update GB reference

* Update GB reference.

* Only enable page templates on dev builds

* Update aztec version

* Update aztec version

* Add colors for gallery block

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update GB reference.

* Update Gutenberg ref

* Update Aztec version to 1.14.0

* Make sure if the textColor is changed the default text color is updated.

* Use Slider from react-native-community lib (#1620)

* Use Slider from react-native-community lib

* Update slider version

* Add function to read npm version

* Rengenerate yarn.lock

* Bump node version

* Update readNPMVersion function

* Use Slider from fork

* Update Slider commit

* Use Slider from wordpress-mobile fork

* Add react-native-slider podspec

* Improve babel config

* Correct settings.gradle

* Correct project.pbxproj

* Update ref

* Bump

* Update ref

* Update ref to gutenberg master

* Update ref to gutenberg quick fix

* Update ref to gutenberg master

* Update Aztec editor version.

* Update to iOS 13

* Update Xcode version.

* Use iOS 12 for tests.

* Fix typo

* Update Aztec to fix CI error with xcode 10

* Use iOS 12.2

* Update Appium version.

* Update to appium 1.15.1

* Update to Appium 1.15.1 only in iOS

* Update caps.

* Add Gallery Block (#1498)

* WIP - initial-html.js for gallery testing

* Add parent app media mock for Android

* Update gutenberg reference

* Update gutenberg reference

* Comment out line setting mPendingMediaUploadCallback to null

* Update gutenberg reference

* Generate bundles

* Update gutenberg ref

* Generate bundles

* Generate bundles

* Add some color-studio colors for gallery

* Update gutenberg reference

* Generate bundle

* WIP update ref

* Update gutenberg reference

* Update gutenberg submodule

* Generate bundles

* Add $gray-40 color

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Restore demo content

* Restore anonymous implementation of GutenbergBridgeJS2Parent

* Update gutenberg reference

* Generate bundles

* Bump up Aztec version on iOS Example app

* Update gb ref

* Generate bundles

* Update gutenberg ref

* Update gutenberg ref (#1646)

* Add release notes for Gallery (#1658)

* Make sure we use iPhone 11 (iOS 13) for build and run tests

* Pooint aztecVersion to develop

* Update Appium for Android tests too.

* Set Appium to 1.15.0

* Update aztec version to 1.3.36

* Update appium to 1.16.0-rc.1

* Update Aztec iOS to 1.14.1

* Update GB reference.

* Activate preformat block on android platform (#1615)

* Updates package.json and JS bundle for 1.19.0 release.

* Update to shorten git commands

Make the git commands a little easier to copy by taking out `$` from the start of the lines.

This also matches with the other commands on the page which do not start with `$`.

* Update Unit Tests headings in Getting Started documentation

The heading "Test" should be "Unit Tests".

The heading "Writing and Running Tests" should be "Writing and Running Unit Tests".

https://github.com/wordpress-mobile/gutenberg-mobile/blob/develop/src/index.test.js

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg ref

* Updating bundles.

* Feat: Navigation Down in InnerBlocks (#1379)

* Add ref to gutenberg repo

* Fix e2e tests

* Update ref to gutenberg master

* Update Gutenberg ref

* Remove empty line between checkboxes

* Updating release notes to show video settings in 1.19

* Updating gutenberg reference to latest 1.19 release change on gutenberg master branch

* Update gutenberg ref

* Sass Transformer: Also look for partials

Add support for [SASS partials](https://sass-lang.com/guide), as is already present [upstream](https://github.com/kristerkari/react-native-sass-transformer/blob/52884dd59582856fa17e2b2e8ca9efc37d412387/index.js#L41-L42).

This should fix the issue introduced by #19159, and discussed there.

* Single quotes

* Also update sass-transformer-inside-gb.js

* Update release notes

* Update gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Update Gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Bundles up to date with merged code from develop

* Add ref to gutenberg repo

* Update ref

* Update ref

* Update ref

* Upgrade the SVG lib to fix #1703

* Upgrade the Video lib to fix #1705

* Upgrade the Slider lib to use node_modules in local npm build

* Update ref

* Upgrade the SVG lib ref

* Upgrade the Video lib ref

* Upgrade the Slider lib ref

* Update ref

* Brings back gb master to normal (#1722)

* Fix/Bring back master to normal (#1724)

* Update Gutenberg ref

* Update Gutenberg ref

Co-authored-by: Tugdual de Kerviler <dekervit@gmail.com>
Co-authored-by: Matt Chowning <mchowning@gmail.com>
Co-authored-by: etoledom <etoledom@icloud.com>
Co-authored-by: Sérgio Estêvão <sergioestevao@gmail.com>
Co-authored-by: Cameron Voell <cameronvoell@gmail.com>
Co-authored-by: Jorge Bernal <jbernal@gmail.com>
Co-authored-by: Javon Davis <JavonDavis@users.noreply.github.com>
Co-authored-by: Maxime Biais <maxime@bia.is>
Co-authored-by: Gerardo Pacheco <gerardo.pacheco@automattic.com>
Co-authored-by: Matthew Kevins <mkevins@users.noreply.github.com>
Co-authored-by: Stefanos Togoulidis <stefanostogoulidis@gmail.com>
Co-authored-by: Marko Savic <savicmarko1985@gmail.com>
Co-authored-by: Luke Walczak <lukasz.walczak.pwr@gmail.com>
Co-authored-by: Pinar Olguc <pinarolguc@gmail.com>
Co-authored-by: Sheri Bigelow <sheri@designsimply.com>
Co-authored-by: jbinda <jakub.binda@gmail.com>
Co-authored-by: Bernie Reiter <ockham@raz.or.at>
Tug added a commit that referenced this pull request Jan 16, 2020
* Use string-array instead of plurals tag in strings.xml

See https://github.com/GlotPress/GlotPress-WP/blob/master/gp-includes/formats/format-android.php

* Update string files

* Update scripts to minimize changes in git diff and keep the same context for android

* Exclude strings from tests

* Fix lint errors

* Bump version to 1.17.1

* Update gutenberg ref following 1.17 merge to gutenberg master

* Update gutenberg ref

* Remove declaration on bridge of unused methods.

* Added bridge code for gutenberg to request a native fullscreen preview for for an image from a URL on iOS.

* Updating bundle and gutenberg reference.

* Updated release notes.

* Update gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Update GB reference.

* Updating bundle after catching up branch and gutenberg submodule.

* Update gutenberg ref

* Update release notes.

* Update UI test

* Pass postType as initial prop on iOS

* Pass postType down to Editor

* Allow Android to set the post type

* Updating gutenberg reference.

* Removed duplicate line from merge.

* updafe test files and iOS version for running locally with xcode 11

* Update gutenberg ref

* Update gutenberg ref

* Update aztec to version that support reversed and start on lists.

* Update Gutenberg to version where list settings are active in native.

* update block list check and capabilities

* replace double click on android

* fix block insertion timeout

* update branch with develop

* Update gutenberg ref

* Update package.json and JS bundle for 1.18.0 release

* Update Gutenberg

* Update Gutenberg

* update gutenberg ref

* Update GB-reference.

* Update release notes.

* revert caps to iPhone Simulator

* Update Gutenberg ref

* Update Release notes

* Update gutenberg/ reference

* Update bundles

* Update GB reference.

* Fix spacing

* Add static method to Media class to create instance using mimeType

* Add flag to track when appending multiple selected media items as blocks

* Introduce mediaSelectionCancelled method in WPAndroidGlueCode

* Set flag to append blocks when multiple = false is not respected

* Only use appendUploadMediaFiles plural version

* Update gutenberg ref

* Update to latest Gutenberg master

* Patch jsdom to implement Element.closest()

* Bring back changes on package.json from 1.7.1

* Add docstring to the function

* Return null as per https://dom.spec.whatwg.org/#dom-element-closest

* Update Aztec version.

* Update GB reference.

* Update gutenberg ref

* Update RELEASE-NOTES.txt

* Update GB reference

* Improve code block style

* Update GB reference.

* Update gutenberg ref

* Update Media mimeType truncation to use enum names

* Add Javadoc for mAppendsMultipleSelectedToSiblingBlocks flag

* Set appends to sibling blocks flag explicitly for all requests

* Add clarifying comment for special block append handling

* Remove singular (unused) appendMedia method

* Update GB reference.

* Update GB reference to master.

* Set appends to sibling blocks flag explicitly for other media pick

* Update GB reference.

* Update GB reference.

* Use lowercase for Media mimeType truncation

* Update Gutenberg

* Update Gutenberg

* Update Gutenberg ref - after fix for caption alignment

* Update bundles

* Point to aztecVersion hash which supports list with start and reverse attribute

* Update bundle and gutenberg ref - fix disappearing image

* Update GB reference.

* Update GB reference.

* Update GB reference.

* Update Gutenberg

* Update Gutenberg ref

* Update GB reference

* Update GB reference.

* Only enable page templates on dev builds

* Update aztec version

* Update aztec version

* Add colors for gallery block

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update GB reference.

* Update Gutenberg ref

* Update Aztec version to 1.14.0

* Make sure if the textColor is changed the default text color is updated.

* Use Slider from react-native-community lib (#1620)

* Use Slider from react-native-community lib

* Update slider version

* Add function to read npm version

* Rengenerate yarn.lock

* Bump node version

* Update readNPMVersion function

* Use Slider from fork

* Update Slider commit

* Use Slider from wordpress-mobile fork

* Add react-native-slider podspec

* Improve babel config

* Correct settings.gradle

* Correct project.pbxproj

* Update ref

* Bump

* Update ref

* Update ref to gutenberg master

* Update ref to gutenberg quick fix

* Update ref to gutenberg master

* Update Aztec editor version.

* Update to iOS 13

* Update Xcode version.

* Use iOS 12 for tests.

* Fix typo

* Update Aztec to fix CI error with xcode 10

* Use iOS 12.2

* Update Appium version.

* Update to appium 1.15.1

* Update to Appium 1.15.1 only in iOS

* Update caps.

* Add Gallery Block (#1498)

* WIP - initial-html.js for gallery testing

* Add parent app media mock for Android

* Update gutenberg reference

* Update gutenberg reference

* Comment out line setting mPendingMediaUploadCallback to null

* Update gutenberg reference

* Generate bundles

* Update gutenberg ref

* Generate bundles

* Generate bundles

* Add some color-studio colors for gallery

* Update gutenberg reference

* Generate bundle

* WIP update ref

* Update gutenberg reference

* Update gutenberg submodule

* Generate bundles

* Add $gray-40 color

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Generate bundles

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg reference

* Restore demo content

* Restore anonymous implementation of GutenbergBridgeJS2Parent

* Update gutenberg reference

* Generate bundles

* Bump up Aztec version on iOS Example app

* Update gb ref

* Generate bundles

* Update gutenberg ref

* Update gutenberg ref (#1646)

* Add release notes for Gallery (#1658)

* Make sure we use iPhone 11 (iOS 13) for build and run tests

* Pooint aztecVersion to develop

* Update Appium for Android tests too.

* Set Appium to 1.15.0

* Update aztec version to 1.3.36

* Update appium to 1.16.0-rc.1

* Update Aztec iOS to 1.14.1

* Update GB reference.

* Activate preformat block on android platform (#1615)

* Updates package.json and JS bundle for 1.19.0 release.

* Update to shorten git commands

Make the git commands a little easier to copy by taking out `$` from the start of the lines.

This also matches with the other commands on the page which do not start with `$`.

* Update Unit Tests headings in Getting Started documentation

The heading "Test" should be "Unit Tests".

The heading "Writing and Running Tests" should be "Writing and Running Unit Tests".

https://github.com/wordpress-mobile/gutenberg-mobile/blob/develop/src/index.test.js

* Update gutenberg reference

* Update gutenberg reference

* Update gutenberg ref

* Updating bundles.

* Feat: Navigation Down in InnerBlocks (#1379)

* Add ref to gutenberg repo

* Fix e2e tests

* Update ref to gutenberg master

* Update Gutenberg ref

* Remove empty line between checkboxes

* Updating release notes to show video settings in 1.19

* Updating gutenberg reference to latest 1.19 release change on gutenberg master branch

* Update gutenberg ref

* Sass Transformer: Also look for partials

Add support for [SASS partials](https://sass-lang.com/guide), as is already present [upstream](https://github.com/kristerkari/react-native-sass-transformer/blob/52884dd59582856fa17e2b2e8ca9efc37d412387/index.js#L41-L42).

This should fix the issue introduced by #19159, and discussed there.

* Single quotes

* Also update sass-transformer-inside-gb.js

* Update release notes

* Update gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Update Gutenberg ref

* Update gutenberg ref

* Update gutenberg ref

* Bundles up to date with merged code from develop

* Add ref to gutenberg repo

* Update ref

* Update ref

* Update ref

* Upgrade the SVG lib to fix #1703

* Upgrade the Video lib to fix #1705

* Upgrade the Slider lib to use node_modules in local npm build

* Update ref

* Upgrade the SVG lib ref

* Upgrade the Video lib ref

* Upgrade the Slider lib ref

* Update ref

* Brings back gb master to normal (#1722)

* Fix/Bring back master to normal (#1724)

* Update Gutenberg ref

* Update Gutenberg ref

Co-authored-by: Tugdual de Kerviler <dekervit@gmail.com>
Co-authored-by: Matt Chowning <mchowning@gmail.com>
Co-authored-by: etoledom <etoledom@icloud.com>
Co-authored-by: Sérgio Estêvão <sergioestevao@gmail.com>
Co-authored-by: Cameron Voell <cameronvoell@gmail.com>
Co-authored-by: Jorge Bernal <jbernal@gmail.com>
Co-authored-by: Javon Davis <JavonDavis@users.noreply.github.com>
Co-authored-by: Maxime Biais <maxime@bia.is>
Co-authored-by: Gerardo Pacheco <gerardo.pacheco@automattic.com>
Co-authored-by: Matthew Kevins <mkevins@users.noreply.github.com>
Co-authored-by: Stefanos Togoulidis <stefanostogoulidis@gmail.com>
Co-authored-by: Marko Savic <savicmarko1985@gmail.com>
Co-authored-by: Luke Walczak <lukasz.walczak.pwr@gmail.com>
Co-authored-by: Pinar Olguc <pinarolguc@gmail.com>
Co-authored-by: Sheri Bigelow <sheri@designsimply.com>
Co-authored-by: jbinda <jakub.binda@gmail.com>
Co-authored-by: Bernie Reiter <ockham@raz.or.at>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants