From 4ac2cf17453ee4a1d481700861566d09ebaed01e Mon Sep 17 00:00:00 2001 From: kmelmon <33470154+kmelmon@users.noreply.github.com> Date: Wed, 15 Apr 2020 00:49:28 -0700 Subject: [PATCH] Password box bug (#4607) * bug fix, update test * Change files --- ...native-windows-2020-04-14-22-41-42-PasswordBoxBug.json | 8 ++++++++ packages/playground/Samples/textinput.tsx | 1 - vnext/ReactUWP/Modules/NativeUIManager.cpp | 1 + vnext/ReactUWP/Views/ShadowNodeBase.cpp | 6 ++++++ vnext/include/Include.vcxitems.filters | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 change/react-native-windows-2020-04-14-22-41-42-PasswordBoxBug.json diff --git a/change/react-native-windows-2020-04-14-22-41-42-PasswordBoxBug.json b/change/react-native-windows-2020-04-14-22-41-42-PasswordBoxBug.json new file mode 100644 index 00000000000..643272b3cb3 --- /dev/null +++ b/change/react-native-windows-2020-04-14-22-41-42-PasswordBoxBug.json @@ -0,0 +1,8 @@ +{ + "type": "prerelease", + "comment": "fix bug where not specifying height on TextInput causes 0 height", + "packageName": "react-native-windows", + "email": "kmelmon@microsoft.com", + "dependentChangeType": "patch", + "date": "2020-04-15T05:41:41.940Z" +} \ No newline at end of file diff --git a/packages/playground/Samples/textinput.tsx b/packages/playground/Samples/textinput.tsx index 53ac5cb107a..f342f158581 100644 --- a/packages/playground/Samples/textinput.tsx +++ b/packages/playground/Samples/textinput.tsx @@ -134,7 +134,6 @@ const styles = StyleSheet.create({ }, input: { margin: 5, - height: 40, width: 700, borderColor: '#7a42f4', borderWidth: 1, diff --git a/vnext/ReactUWP/Modules/NativeUIManager.cpp b/vnext/ReactUWP/Modules/NativeUIManager.cpp index 9744d616741..b26fdc7a602 100644 --- a/vnext/ReactUWP/Modules/NativeUIManager.cpp +++ b/vnext/ReactUWP/Modules/NativeUIManager.cpp @@ -793,6 +793,7 @@ void NativeUIManager::ReplaceView(facebook::react::ShadowNode &shadowNode) { auto context = std::make_unique(node.GetView()); YGNodeSetContext(yogaNode, reinterpret_cast(context.get())); + m_tagsToYogaContext.erase(node.m_tag); m_tagsToYogaContext.emplace(node.m_tag, std::move(context)); } } else { diff --git a/vnext/ReactUWP/Views/ShadowNodeBase.cpp b/vnext/ReactUWP/Views/ShadowNodeBase.cpp index 1bc4597c351..c03d97ed666 100644 --- a/vnext/ReactUWP/Views/ShadowNodeBase.cpp +++ b/vnext/ReactUWP/Views/ShadowNodeBase.cpp @@ -92,6 +92,12 @@ void ShadowNodeBase::ReparentView(XamlView view) { } } ReplaceView(view); + + // Let the UIManager know about this so it can update the yoga context. + if (const auto instance = GetViewManager()->GetReactInstance().lock()) { + auto pNativeUiManager = static_cast(instance->NativeUIManager()); + pNativeUiManager->ReplaceView(*static_cast(this)); + } } winrt::Windows::UI::Composition::CompositionPropertySet ShadowNodeBase::EnsureTransformPS() { diff --git a/vnext/include/Include.vcxitems.filters b/vnext/include/Include.vcxitems.filters index 9e5b13ff3fd..3de9e65a5de 100644 --- a/vnext/include/Include.vcxitems.filters +++ b/vnext/include/Include.vcxitems.filters @@ -86,6 +86,7 @@ ReactUWP\Utils +