Skip to content

[Mobile] Disable Page Template picker if modal layout picker is available (Update for new capabilities mechanism)#24170

Merged
chipsnyder merged 1 commit intomasterfrom
mobile/issue/2419-capabilities
Jul 28, 2020
Merged

[Mobile] Disable Page Template picker if modal layout picker is available (Update for new capabilities mechanism)#24170
chipsnyder merged 1 commit intomasterfrom
mobile/issue/2419-capabilities

Conversation

@chipsnyder
Copy link
Copy Markdown
Contributor

@chipsnyder chipsnyder commented Jul 23, 2020

Fixes: wordpress-mobile/gutenberg-mobile#2419

Related PRs:

Description

This capability was originally tested as part of #23872 this just serves as the update to migrate that strategy to be in line with recent changes.

Below is the description and testing steps from the original PR.


Description

This change enables the mobile editor to accept the capability modalLayoutPicker and based on that conditionally show or hide the Template Picker.

Android hasn't started Modal Layout Picker yet so this only needs to

How has this been tested?

To disable or enable the development version of Modal Layout Picker

On iOS using the build options mentioned above

  • With Gutenberg Modal Layout Picker toggled on:

    • Select to create a new page
    • Expect to see the container for the new modal Layout Picker
    • Select "Create Blank Page"
    • Expect the current template picker to be hidden
  • With Gutenberg Modal Layout Picker toggled on:

    • Select an existing page or draft without content (just a title)
    • You should not see the new Modal Layout Picker
    • Expect the current template picker to be hidden
  • With Gutenberg Modal Layout Picker toggled off:

    • Select to create a new page
    • You should not see the new Modal Layout Picker
    • Expect the current template picker to be shown.
  • With Gutenberg Modal Layout Picker toggled off:

    • Select an existing page or draft without content (just a title)
    • You should not see the new Modal Layout Picker
    • Expect the current template picker to be shown
  • With Gutenberg Modal Layout Picker toggled on or off:

    • Select an existing page or draft with content
    • Expect the current template picker to be hidden

On Android running a metro server or generating a build

  • Existing Blank Page
    • Select an existing page or draft without content (just a title)
    • Expect the current template picker to be shown
  • New Page
    • Select to create a new page
    • Expect the current template picker to be shown.
  • Existing Page
    • Select an existing page or draft with content
    • Expect the current template picker to be hidden

Types of changes

New feature

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

@github-actions
Copy link
Copy Markdown

Size Change: 0 B

Total Size: 1.15 MB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.min.js 1.14 kB 0 B
build/annotations/index.min.js 3.67 kB 0 B
build/api-fetch/index.min.js 3.43 kB 0 B
build/autop/index.min.js 2.82 kB 0 B
build/blob/index.min.js 620 B 0 B
build/block-directory/index.min.js 7.63 kB 0 B
build/block-directory/style-rtl.css 953 B 0 B
build/block-directory/style.css 952 B 0 B
build/block-editor/index.min.js 125 kB 0 B
build/block-editor/style-rtl.css 10.8 kB 0 B
build/block-editor/style.css 10.8 kB 0 B
build/block-library/editor-rtl.css 7.63 kB 0 B
build/block-library/editor.css 7.63 kB 0 B
build/block-library/index.min.js 132 kB 0 B
build/block-library/style-rtl.css 7.83 kB 0 B
build/block-library/style.css 7.83 kB 0 B
build/block-library/theme-rtl.css 728 B 0 B
build/block-library/theme.css 729 B 0 B
build/block-serialization-default-parser/index.min.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.min.js 3.1 kB 0 B
build/blocks/index.min.js 48.3 kB 0 B
build/components/index.min.js 200 kB 0 B
build/components/style-rtl.css 15.7 kB 0 B
build/components/style.css 15.6 kB 0 B
build/compose/index.min.js 9.68 kB 0 B
build/core-data/index.min.js 11.5 kB 0 B
build/data-controls/index.min.js 1.29 kB 0 B
build/data/index.min.js 8.45 kB 0 B
build/date/index.min.js 5.38 kB 0 B
build/deprecated/index.min.js 772 B 0 B
build/dom-ready/index.min.js 568 B 0 B
build/dom/index.min.js 3.23 kB 0 B
build/edit-navigation/index.min.js 10.8 kB 0 B
build/edit-navigation/style-rtl.css 1.08 kB 0 B
build/edit-navigation/style.css 1.08 kB 0 B
build/edit-post/index.min.js 304 kB 0 B
build/edit-post/style-rtl.css 5.61 kB 0 B
build/edit-post/style.css 5.61 kB 0 B
build/edit-site/index.min.js 16.9 kB 0 B
build/edit-site/style-rtl.css 3.06 kB 0 B
build/edit-site/style.css 3.06 kB 0 B
build/edit-widgets/index.min.js 9.37 kB 0 B
build/edit-widgets/style-rtl.css 2.45 kB 0 B
build/edit-widgets/style.css 2.45 kB 0 B
build/editor/editor-styles-rtl.css 537 B 0 B
build/editor/editor-styles.css 539 B 0 B
build/editor/index.min.js 45.3 kB 0 B
build/editor/style-rtl.css 3.78 kB 0 B
build/editor/style.css 3.78 kB 0 B
build/element/index.min.js 4.65 kB 0 B
build/escape-html/index.min.js 733 B 0 B
build/format-library/index.min.js 7.72 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.min.js 2.13 kB 0 B
build/html-entities/index.min.js 621 B 0 B
build/i18n/index.min.js 3.56 kB 0 B
build/is-shallow-equal/index.min.js 711 B 0 B
build/keyboard-shortcuts/index.min.js 2.51 kB 0 B
build/keycodes/index.min.js 1.94 kB 0 B
build/list-reusable-blocks/index.min.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.min.js 5.33 kB 0 B
build/notices/index.min.js 1.79 kB 0 B
build/nux/index.min.js 3.4 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.min.js 2.56 kB 0 B
build/primitives/index.min.js 1.4 kB 0 B
build/priority-queue/index.min.js 789 B 0 B
build/redux-routine/index.min.js 2.85 kB 0 B
build/rich-text/index.min.js 13.9 kB 0 B
build/server-side-render/index.min.js 2.71 kB 0 B
build/shortcode/index.min.js 1.7 kB 0 B
build/token-list/index.min.js 1.27 kB 0 B
build/url/index.min.js 4.06 kB 0 B
build/viewport/index.min.js 1.85 kB 0 B
build/warning/index.min.js 1.14 kB 0 B
build/wordcount/index.min.js 1.17 kB 0 B

compressed-size-action

@chipsnyder chipsnyder requested a review from etoledom July 24, 2020 17:14
public enum Capabilities: String {
case mentions
case unsupportedBlockEditor
case modalLayoutPicker
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If this modal layout picker is a wpcom only feature as we agreed, shouldn't this be handled only by the WPApp's feature flags only?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This flag is handling hiding the Starter Page Template bar that currently appears on new pages. Since the wpcom feature does the same thing we don't want to prompt with the layout options twice. This just provides a way for the apps to say I've already presented a layout picker.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

In this case, shouldn't we refer to "deactivate Starter Page Template Bar"?
It feels to me that the library shouldn't know about the external interface, but give the option to hide the internal one.

Unless I'm misunderstanding something 🤔

Copy link
Copy Markdown
Contributor Author

@chipsnyder chipsnyder Jul 27, 2020

Choose a reason for hiding this comment

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

I'm ok with renaming this. I read it more as the app has a modal layout picker as one of its capabilities, were the deactivate wording to me sounded less like "something I have" and more like a feature flag. Removing the word modal might be better to match your concern of having the interface bleed into this flag.

Although once we complete this work this flag will go away as well as the current SPT so this will be relatively short-lived.

Copy link
Copy Markdown
Contributor

@etoledom etoledom Jul 28, 2020

Choose a reason for hiding this comment

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

I read it more as the app has a modal layout picker as one of its capabilities.

Exactly. The library shouldn't need to know what capabilities the app has.
It's a bit more than just renaming, also we would need to invert it's usage here:

const isTemplatePickerEnabled = ! (
props.capabilities.modalLayoutPicker ?? false
);

In a way that having this capability false, the library won't show the SPT bar (think of: "The capability in the library IS its SPT bar).

Although once we complete this work this flag will go away as well as the current SPT so this will be relatively short-lived.

Oh I didn't know that. Then no need to be so strict about this I guess :)
I'll leave it to you to decide and ✅

Copy link
Copy Markdown
Contributor

@etoledom etoledom left a comment

Choose a reason for hiding this comment

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

As we agreed in comments, let's go ahead with this change and not block on details that will be removed soon.

@chipsnyder - Up to you to implement or not the requested changes 👍

@chipsnyder
Copy link
Copy Markdown
Contributor Author

Thanks @etoledom! Yeah, I agree since this is short-lived I think we can move forward. I'm going to leave it as is so that way we don't need to update the Android side as well. Thanks for taking the time for the review and for the feedback :)

@chipsnyder chipsnyder merged commit 3f2daa5 into master Jul 28, 2020
@chipsnyder chipsnyder deleted the mobile/issue/2419-capabilities branch July 28, 2020 13:50
@github-actions github-actions bot added this to the Gutenberg 8.7 milestone Jul 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Modal Layout Picker] Create Modal window for Modal Layout Picker

2 participants