guardia-messenger/node_modules/react-native-screens/windows/RNScreens/Screen.cpp
DESKTOP-TKLFCPRython f29f525c77 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 10:09:17 +09:00

123 lines
3.1 KiB
C++

#include "pch.h"
#include "Screen.h"
#include "JSValueXaml.h"
#include "NativeModules.h"
namespace winrt {
using namespace Microsoft::ReactNative;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
} // namespace winrt
namespace winrt::RNScreens::implementation {
Screen::Screen(winrt::Microsoft::ReactNative::IReactContext reactContext)
: m_reactContext(reactContext) {
onLoadingRevoker = Loading({this, &Screen::onLoading});
onLoadedRevoker = Loaded({this, &Screen::onLoaded});
onUnloadedRevoker = Unloaded({this, &Screen::onUnloaded});
}
Screen::~Screen() {
Loading(onLoadingRevoker);
Loaded(onLoadedRevoker);
Unloaded(onUnloadedRevoker);
}
void Screen::addView(winrt::Windows::UI::Xaml::UIElement element) {
Children().Append(element);
}
void Screen::removeAllChildren() {
Children().Clear();
}
void Screen::removeChildAt(int64_t index) {
Children().RemoveAt(static_cast<uint32_t>(index));
}
void Screen::replaceChild(
winrt::Windows::UI::Xaml::UIElement oldChild,
winrt::Windows::UI::Xaml::UIElement newChild) {
uint32_t index;
if (!Children().IndexOf(oldChild, index))
return;
Children().SetAt(index, newChild);
}
void Screen::onLoading(
winrt::Windows::UI::Xaml::FrameworkElement const &sender,
winrt::Windows::Foundation::IInspectable const &) {
auto screen = sender.try_as<Screen>();
if (!screen)
return;
screen->dispatchOnWillAppear();
}
void Screen::onLoaded(
winrt::Windows::Foundation::IInspectable const &sender,
winrt::Windows::UI::Xaml::RoutedEventArgs const &) {
auto screen = sender.try_as<Screen>();
if (!screen)
return;
screen->dispatchOnAppear();
}
void Screen::onUnloaded(
winrt::Windows::Foundation::IInspectable const &sender,
winrt::Windows::UI::Xaml::RoutedEventArgs const &) {
auto screen = sender.try_as<Screen>();
if (!screen)
return;
screen->dispatchOnWillDisappear();
screen->dispatchOnDisappear();
}
void Screen::dispatchOnWillAppear() {
m_reactContext.DispatchEvent(
*this,
L"topWillAppear",
[&](winrt::IJSValueWriter const &eventDataWriter) noexcept {
eventDataWriter.WriteObjectBegin();
eventDataWriter.WriteObjectEnd();
});
}
void Screen::dispatchOnWillDisappear() {
m_reactContext.DispatchEvent(
*this,
L"topWillDisappear",
[&](winrt::IJSValueWriter const &eventDataWriter) noexcept {
eventDataWriter.WriteObjectBegin();
eventDataWriter.WriteObjectEnd();
});
}
void Screen::dispatchOnAppear() {
m_reactContext.DispatchEvent(
*this,
L"topAppear",
[&](winrt::IJSValueWriter const &eventDataWriter) noexcept {
eventDataWriter.WriteObjectBegin();
eventDataWriter.WriteObjectEnd();
});
}
void Screen::dispatchOnDisappear() {
m_reactContext.DispatchEvent(
*this,
L"topDisappear",
[&](winrt::IJSValueWriter const &eventDataWriter) noexcept {
eventDataWriter.WriteObjectBegin();
eventDataWriter.WriteObjectEnd();
});
}
} // namespace winrt::RNScreens::implementation