MCPcopy Create free account
hub / github.com/YtFlow/Maple / OnNavigatedTo

Method OnNavigatedTo

Maple.App/MonacoEditPage.cpp:103–149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101 }
102
103 fire_and_forget MonacoEditPage::OnNavigatedTo(NavigationEventArgs const& e) {
104 try {
105 auto const lifetime{ get_strong() };
106 auto const param = e.Parameter().as<Maple_App::ConfigViewModel>();
107 hstring fileName;
108 try
109 {
110 fileName = param.File().Name();
111 }
112 catch (...) {}
113 if (fileName.empty())
114 {
115 co_return;
116 }
117 auto const parent = co_await param.File().GetParentAsync();
118 if (!parent)
119 {
120 UI::NotifyUser("Failed to load config folder.", L"Error: loading file");
121 co_return;
122 }
123 auto const parentPath = parent.Path();
124 if (parentPath != m_lastConfigFolderPath)
125 {
126 m_lastConfigFolderPath = parentPath;
127 m_webviewState = MonacoEditPageWebViewState::Uninitialized;
128 }
129 m_currentFileName = fileName;
130 switch (m_webviewState)
131 {
132 case MonacoEditPageWebViewState::Uninitialized:
133 co_await initializeWebView();
134 co_await lifetime->WebView().ExecuteScriptAsync(L"window.mapleHostApi.resetFiles()");
135 break;
136 case MonacoEditPageWebViewState::AwaitingEditorReady:
137 break;
138 case MonacoEditPageWebViewState::EditorReady:
139 co_await lifetime->WebView().ExecuteScriptAsync(hstring{ L"window.mapleHostApi.loadFile(`http://maple-monaco-editor-config-root.com/" } +
140 fileName +
141 L"`)");
142 break;
143 }
144 }
145 catch (...)
146 {
147 UI::NotifyException(L"Loading WebView page");
148 }
149 }
150
151 fire_and_forget MonacoEditPage::WebView_WebMessageReceived(
152 MUXC::WebView2 const& sender,

Callers

nothing calls this directly

Calls 2

NameMethod · 0.80
FileMethod · 0.80

Tested by

no test coverage detected