Implement React-inspired GUI framework with recursive child rendering and viewer-specific updates#203
Implement React-inspired GUI framework with recursive child rendering and viewer-specific updates#203Copilot wants to merge 96 commits intoversion/1.21.11from
Conversation
|
@copilot dont generate tests or test classes yet. |
|
@copilot provide dsl for all usefull things |
|
@copilot the framework should be folia compatible and also follow our design guidelines. use your instructions provided in this repository. |
|
@copilot You can use https://github.com/devnatan/inventory-framework as an example |
Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
|
@copilot remove the tests for now, also register the listener in the correct surf-api-bukkit-server class and not in the test plugin |
… access Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
…d make Folia-compatible Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
Test files removed in commit 1eb2afb. Deleted TestGuiView.kt and NewGuiTest.kt.
Added comprehensive DSL in commit 1eb2afb:
See
Made Folia-compatible in commit 1eb2afb:
Done in commit 1eb2afb:
|
Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
|
views should not have an active "player"/viewer as the view needs to hold the global/shared props. Thus the prop scope isnt needed. check that all listeners are folia compatible components should be able to be itemless. for example if i need a paginated component the component itself cannot render "one" itemstack. It needs to render multiple items at specific places views should have the option to be created in other types, eg. hopper, etc. views can also be smaller than 9 rows, eg. 1x5 row |
…ifferent inventory types Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
All requested changes implemented in commit c648711: 1. Props are now view-global:
2. Listeners are Folia-compatible:
3. Components can be itemless:
4. Multiple inventory types:
5. Flexible sizing:
|
Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
…performance and consistency
|
@copilot Bau noch ein onInit in den component ein, damit man sachen ändern kann, bevor er das erste mal gerendert wird |
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
- Added onInit() lifecycle hook to Component class - Added INIT to LifecycleEventType enum - onInit called before onFirstRender for components and all children recursively - Allows components to modify state/properties before first render - Tracked via initializedComponents set to ensure onInit called only once per component Co-authored-by: ammodev <32338899+ammodev@users.noreply.github.com>
… render" This reverts commit ea4b26c.
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
…ork' into copilot/implement-new-gui-framework
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
1 similar comment
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
…nitialization context
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
…actor modifyConfig method
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateLegacyAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
Add onInit Lifecycle Hook to Components ✅
Added
onInit()lifecycle hook that is called before a component is first rendered.Changes:
onInit(context: LifecycleContext)method to Component classINITto LifecycleEventType enumonInitis called beforeonFirstRenderfor components and all children recursivelyonInitis called exactly once, tracked viainitializedComponentssetUsage:
Allows components to set up initial state before being rendered for the first time.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.