✨ feat: standalone extension manager - #165
Conversation
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Deploying clipcc-preview with
|
| Latest commit: |
02f6866
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://2c8f3097.clipcc-preview.pages.dev |
| Branch Preview URL: | https://feat-extension-ng.clipcc-preview.pages.dev |
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
| clearTimeout(this.toolboxUpdateTimeout); | ||
|
|
||
| // Remove event listeners for extension manager. | ||
| this.props.extensionManager.addEventListener('UPDATE_BLOCKS', this.handleExtensionUpdateBlocks); |
| formatMessage.setup({locale: locale, translations: {[locale]: messages}}); | ||
| } | ||
| return this.extensionManager.refreshBlocks(); | ||
| return Promise.resolve(); |
There was a problem hiding this comment.
should call extensionManager's refreshInfo(), or the extension block's locale won't get changed. also not seen in gui
There was a problem hiding this comment.
updated in 1a84c8a, vm's {get,set}Locale method is marked as deprecated since it is only used for translating extensions' blocks. i consider to implement that feature in extension manager.
btw, currently all extensions uses vm's format-message. the package used in vm and extension manager should be same version, to ensure that they share the same instance. later, builtin extensions should be splited from vm to solve the problem.
| * Event handler for updating block definitions. | ||
| * @param {import('clipcc-extension').UpdateBlocksEvent} event Event payload. | ||
| */ | ||
| handleExtensionUpdateBlocks (event) { |
There was a problem hiding this comment.
consider add theme support for extension blocks, like what handleExtensionAdded did
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
For 1: vm-related methods should be invoked after vm-manager-hoc is mounted. it should work fine. there is a problem that vm.initialized is not a property of vm, but assigned by vm-manager-hoc, then some methods might be invoked before vm is actually initialized due to React's lifecycle, like For 2: extension manager loads an extension from its adapter. it should be able to load original scratch extensions from url with worker adapter. For 3: see 02f6866, idk whether i understood the problem correctly. |
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
Signed-off-by: Alex Cui <cuizhihui030925@outlook.com>
For 1, VM should work without extension manager. |
It seems that |
Description
Proposed Changes
Test Coverage
Additional Context