-
Notifications
You must be signed in to change notification settings - Fork 1
WIP: Rewrite plugin in react #720
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
Draft
aristath
wants to merge
324
commits into
develop
Choose a base branch
from
ari/reactify
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
|
Test on Playground |
Contributor
✅ Code Coverage ReportPHP Coverage (PHPUnit)
✅ PHP coverage meets threshold (40%) JavaScript Coverage (Jest)
🎉 Great job maintaining/improving PHP coverage! 📊 File-level Coverage Changes (51 files)🆕 New Files
📈 Coverage Improved
📉 Coverage Decreased
ℹ️ About this report
|
7dd4357 to
73b3cf7
Compare
…ing tasks to React
…ng from PHP Tasks_Manager
…loaded Options tasks to React
…pdate Term Description tasks to React
- Convert all task providers from constructor-based config to static properties - Update base classes (TaskProvider, InteractiveTaskProvider) to read from static properties - Update task registry to accept classes instead of instances - Update task injection service to support multi-task providers with getTasksToInject() - Add isMultiTask static property and getTasksToInject() method for multi-task providers - Remove singleton instances from all 30 task files - Export classes directly instead of instances - Update task registration to import and register classes - Add support for target_taxonomy in getTaskId() for multi-task providers - Fix nested ternary expression linting issue This makes it easier to add new task providers by simply defining static properties without needing constructors.
- Update taskRegistry to listen for 'prpl.tasks.register' action - Add task lifecycle handling: evaluate, check existence, create post, render - Refactor SuggestedTasks widget to support streaming tasks - Add sorted insertion by priority for streaming tasks - Update BlogDescriptionTask to self-register as example - Remove bulk task fetching, tasks now stream in as they register
- HelloWorldTask
- SamplePageTask
- SearchEngineVisibilityTask
- SiteIconTask
- SEOPluginTask
- RemoveInactivePluginsTask
- PermalinkStructureTask
- RenameUncategorizedCategoryTask
- DisableCommentPaginationTask
- CoreUpdateTask
- ContentCreateTask
All tasks now self-register via doAction('prpl.tasks.register')
- SetPageAboutTask - SetPageFAQTask - SetPageContactTask - UnpublishedContentTask - SetValuablePostTypesTask - EmailSendingTask - ImprovePdfHandlingTask - DebugDisplayTask - PhpVersionTask - DisableCommentsTask
- ReduceAutoloadedOptionsTask
- SelectLocaleTask
- SelectTimezoneTask
- SetDateFormatTask
- FewerTagsTask
- ContentReviewTask
- RemoveTermsWithoutPostsTask
- UpdateTermDescriptionTask
All 30 tasks now self-register via doAction('prpl.tasks.register')
Remove all registerTaskProvider() calls since tasks now
self-register via doAction('prpl.tasks.register') when imported.
The index.js file now just imports tasks for their side effects.
The container is not currently used since the widget handles rendering directly via the callback. Keep setTaskContainer for API compatibility but mark as unused.
Set prpl_priority field on tasks before rendering to ensure proper sorting in the widget.
Mark taskInjectionService as deprecated since tasks now self-register and handle their own lifecycle via taskRegistry. The service is kept for reference but should not be used.
- Delete taskInjectionService.js (270 lines) - no longer used - Remove unused registry functions from taskRegistry.js: - registerTaskProvider() - never called, tasks self-register via doAction - getTaskProvider() - only used by deleted taskInjectionService - getAllTaskProviders() - only used by deleted taskInjectionService - isTaskProviderRegistered() - only used by deleted taskInjectionService All removed code was unused. Internal taskProviders Map remains for lifecycle management. Build and linting pass.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rewriting the plugin, from PHP + Vanilla-JS to React.
Playground link