gpui-event
Obsługuj zdarzenia i subskrypcje w GPUI — koordynuj komponenty za pomocą event-driven patterns
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do obsługi zdarzeń i subskrypcji w GPUI. Użyj jej, gdy implementujesz zdarzenia, obserwatory lub wzorce sterowane zdarzeniami. Wspiera niestandardowe zdarzenia, obserwacje zmian stanu encji oraz subskrypcje zdarzeń do koordynacji między komponentami. Definiuj typobezpieczne zdarzenia, emituj je z komponentów i nasłuchuj zmian w innych encjach — wszystko w ramach systemu zdarzeń GPUI.
Jak używać
Zdefiniuj enum dla swoich zdarzeń, dodając warianty dla każdego typu zdarzenia, które chcesz emitować (np. DataUpdated z danymi lub ActionTriggered bez parametrów). Oznacz enum atrybutem #[derive(Clone)], aby umożliwić klonowanie zdarzeń.
W metodzie komponentu, która zmienia stan, wyemituj zdarzenie za pomocą cx.emit(TwojZdarzenie::Wariant), a następnie wywołaj cx.notify(), aby powiadomić system o zmianie.
Aby nasłuchiwać zdarzeń z innego komponentu, użyj cx.subscribe() w konstruktorze słuchacza, przekazując referencję do źródła zdarzeń i closure, który obsługuje każdy wariant zdarzenia.
W closure subskrypcji dopasuj wzorzec zdarzenia (match event) i wykonaj odpowiednią akcję dla każdego wariantu, na przykład zaktualizuj stan lub wyzwól callback.
Aby reagować na zmiany stanu encji bez zdefiniowanych zdarzeń, użyj cx.observe() zamiast subscribe — obserwator zostanie powiadomiony za każdym razem, gdy obserwowana encja wywoła cx.notify().
Pamiętaj, aby odłączyć subskrypcje i obserwatory za pomocą .detach(), aby uniknąć wycieków pamięci i niepotrzebnych powiadomień.