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

Post Schedule: highlight posts as calendar events #25425

Closed
wants to merge 9 commits into from

Conversation

retrofox
Copy link
Contributor

@retrofox retrofox commented Sep 17, 2020

Description

This PR aims to highlight events into the post schedule, picking data up the site posts filtering by status (publish and future).

NOTE: This main purpose of this implementation is to show certain weaknesses of the current date component.

fixes #13713

Issues

Lack of onMonthViewChange or similar

We want to know when the month view changes. It could be ideal to fetch the posts by month. I've created an onMonthChange callback property for the <DatePicker > component but, to be honest, it doesn't sound good to me because this callback is triggered by onNextMonthClick and onPrevMonthClick.

Lack of month view

We'd like to set a different month view, not necessarily tied to the selected date. Now, AFAIK, it isn't possible since every time that the component is mounted, it makes focus on the current date.
It means, and it's an issue that you could confirm on this PR, every time that the app gets and propagates events (site post events), it triggers a new rendering process, and the react-dates focuses to the current date month. If the month before to rendering was different, it will change it :-(

Also, the current implementation seems to be a little bit hacky, based on these comments:

/*
 * Todo: We should remove this function ASAP.
 * It is kept because focus is lost when we click on the previous and next month buttons.
 * This focus loss closes the date picker popover.
 * Ideally we should add an upstream commit on react-dates to fix this issue.
 */

link

// This is a hack to force the calendar to update on month or year change
// https://github.com/airbnb/react-dates/issues/240#issuecomment-361776665

link

How has this been tested?

  • Create a testing post, but before:
    • Add some posts to your testing site, ensuring some are published and other scheduled.
    • Be sure some posts belong to the post that you are going to use to test the post schedule.
  • Set the date of the post, by clicking on the post date (Immediately as default)
  • Change the month again and again.
  • You should see the posts highlighted in the calendar.

Screenshots

Types of changes

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.

@retrofox retrofox added [Status] In Progress Tracking issues with work in progress [Type] Experimental Experimental feature or API. labels Sep 17, 2020
@retrofox retrofox self-assigned this Sep 17, 2020
@github-actions
Copy link

Size Change: +288 B (0%)

Total Size: 1.2 MB

Filename Size Change
build/block-editor/index.js 128 kB +1 B
build/blocks/index.js 47.8 kB +3 B (0%)
build/components/index.js 202 kB +54 B (0%)
build/data/index.js 8.55 kB -2 B (0%)
build/edit-post/index.js 305 kB +1 B
build/edit-site/index.js 19 kB -1 B
build/edit-widgets/index.js 16.6 kB -1 B
build/editor/index.js 45.6 kB +232 B (0%)
build/list-reusable-blocks/index.js 3.12 kB +1 B
build/nux/index.js 3.4 kB +2 B (0%)
build/viewport/index.js 1.85 kB -2 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.67 kB 0 B
build/api-fetch/index.js 3.41 kB 0 B
build/autop/index.js 2.83 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 8.53 kB 0 B
build/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/style-rtl.css 11.1 kB 0 B
build/block-editor/style.css 11.1 kB 0 B
build/block-library/editor-rtl.css 8.59 kB 0 B
build/block-library/editor.css 8.59 kB 0 B
build/block-library/index.js 135 kB 0 B
build/block-library/style-rtl.css 7.6 kB 0 B
build/block-library/style.css 7.59 kB 0 B
build/block-library/theme-rtl.css 741 B 0 B
build/block-library/theme.css 741 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.4 kB 0 B
build/compose/index.js 9.68 kB 0 B
build/core-data/index.js 12.2 kB 0 B
build/data-controls/index.js 1.28 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 4.47 kB 0 B
build/edit-navigation/index.js 10.7 kB 0 B
build/edit-navigation/style-rtl.css 868 B 0 B
build/edit-navigation/style.css 871 B 0 B
build/edit-post/style-rtl.css 6.24 kB 0 B
build/edit-post/style.css 6.22 kB 0 B
build/edit-site/style-rtl.css 3.13 kB 0 B
build/edit-site/style.css 3.13 kB 0 B
build/edit-widgets/style-rtl.css 2.75 kB 0 B
build/edit-widgets/style.css 2.75 kB 0 B
build/editor/editor-styles-rtl.css 492 B 0 B
build/editor/editor-styles.css 493 B 0 B
build/editor/style-rtl.css 3.8 kB 0 B
build/editor/style.css 3.8 kB 0 B
build/element/index.js 4.64 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.71 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.js 2.13 kB 0 B
build/html-entities/index.js 621 B 0 B
build/i18n/index.js 3.57 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 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.js 5.32 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.41 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 13.9 kB 0 B
build/server-side-render/index.js 2.77 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4.06 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@retrofox retrofox marked this pull request as draft October 7, 2020 21:20
Base automatically changed from master to trunk March 1, 2021 15:44
@retrofox
Copy link
Contributor Author

Closing it in favor of #29716

@retrofox retrofox closed this Mar 10, 2021
@retrofox
Copy link
Contributor Author

#29716 is a fresh attempt to tackle this issue.

@retrofox retrofox requested a review from sarahmonster March 10, 2021 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Status] In Progress Tracking issues with work in progress [Type] Experimental Experimental feature or API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Show Existing Scheduled Posts in Calendar / Datepicker
1 participant