public IEnumerator Hooks_UseState_WrongValues() { var wordState = new UseState <string>("Hola a todos !!"); // A Component REcanvas MainReactorComponent() { return(new REcanvas { childs = () => new REbase[] { new REtext { propsId = () => new REtext.IdSetter { id = "ProveText" }, propsText = () => new REtext.TextSetter { text = wordState.value, }, useState = new IuseState[] { wordState, }, }, }, }); } var routerProve = MainReactorComponent(); yield return(new WaitForSecondsRealtime(1)); routerProve.Draw(); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "Hola a todos !!"); yield return(new WaitForSecondsRealtime(1)); wordState.SetState("NewWord"); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "NewWord"); wordState.SetState("OtherWord"); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "OtherWord"); wordState.PrevState(0); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "OtherWord"); wordState.SetState("OtherWord"); wordState.SetState("Word"); wordState.SetState("LastWord"); wordState.SetState("FinalWord"); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "FinalWord"); wordState.PrevState(-1); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "FinalWord"); wordState.PrevState(-2); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "FinalWord"); wordState.PrevState(-10); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "FinalWord"); wordState.PrevState(-2); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "FinalWord"); yield return(new WaitForSecondsRealtime(2)); routerProve.Erase(); }
public IEnumerator Hooks_UseStateUseEffect() { var wordState = new UseState <string>("Hola a todos !!"); // A Component REcanvas MainReactorComponent() { return(new REcanvas { childs = () => new REbase[] { new REtext { propsId = () => new REtext.IdSetter { id = "Textmain", }, propsText = () => new REtext.TextSetter { text = wordState.value, }, useState = new IuseState[] { wordState, }, useEffect = new REtext.UseEffect.Hook[] { new REtext.UseEffect.Hook { duration = 3, deltaFunction = (d, s) => wordState.SetState("A new word"), } } }, }, }); } var routerProve = MainReactorComponent(); routerProve.Draw(); // Waint until useeffect act yield return(new WaitForSecondsRealtime(4)); // Find the component Assert.IsTrue(REtext.FindOne("#Textmain").textCmp.text == "A new word"); yield return(null); }
public IEnumerator Hooks_GenerateChildWithUseState() { var listState = new UseState <List <string> >(new List <string>()); // A Component REcanvas MainReactorComponent() { return(new REcanvas { propsId = () => new REcanvas.IdSetter { id = "MainCanvas", }, useState = new IuseState[] { listState, }, childs = () => listState.value.Select(c => new REtext { propsId = () => new REtext.IdSetter { id = c + "Num", }, propsText = () => new REtext.TextSetter { text = c, } } ), }); } var routerProve = MainReactorComponent(); yield return(new WaitForSecondsRealtime(1)); // Draw the component Debug.Log("Drawing"); routerProve.Draw(); // First check Debug.Log("Childs: " + REbase.FindOne("#MainCanvas").childs.Length); Assert.IsTrue(REbase.FindOne("#MainCanvas").childs.Length == 0); // Simulate the fetch yield return(new WaitForSecondsRealtime(1)); var fetchData = new List <string> { "Six", "Seven", "Eight", "Nine", }; // Draw again the component Debug.Log("UseState: " + listState.value.Count()); listState.SetState(fetchData); // Check Debug.Log("Childs: " + REbase.FindOne("#MainCanvas").childs.Length); Assert.IsTrue(REbase.FindOne("#MainCanvas").childs.Length == 4); Debug.Log("Childs"); foreach (var word in listState.value) { //Debug.Log("Child: " + "#" + word + "Num" + " == " + word); //Debug.Log("Child: " + ReactorElement.Find<REtext.Selector>("#" + word + "Num")[0].textCmp.text + " == " + word); Assert.IsTrue(REtext.FindOne("#" + word + "Num").textCmp.text == word); } yield return(new WaitForSecondsRealtime(2)); routerProve.Erase(); }
private REcanvas ConsoleView() { var addChildToConsole = new UseAddChilds(); var textAddedTrigger = new UseTrigger(); var deleteAllTrigger = new UseTrigger(); var copyTextTrigger = new UseTrigger(); string inputText = ""; REbase TextChild(string text) { string displayText = text; var editMode = new UseState <bool>(false); return(new REbox { propsRectTransform = () => new REbox.RectTransformSetter { height = 200, width = 800, }, childs = () => new REbase[] { new REpanelHorizontal { childs = () => { return new REbase[] { new REbox { propsRectTransform = () => new REbox.RectTransformSetter { width = 400, height = 200, }, useState = new IuseState[] { editMode, }, childs = () => { if (editMode.value) { return new REbase[] { new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = displayText, OnValueChangedListener = (v, s) => { displayText = v; } }, }, }; } else { return new REbase[] { new RElabel { propsText = () => new RElabel.TextSetter { text = displayText, }, }, }; } } }, new REbutton { propsText = () => { if (editMode.value) { return new REbutton.TextSetter { text = "Save" } } ; else { return new REbutton.TextSetter { text = "Edit" } }; }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { editMode.SetState(!editMode.value); } }, useState = new IuseState[] { editMode, }, }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Copy", }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { inputText = displayText; copyTextTrigger.Trigger(); } }, }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Delete", }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { Debug.Log(s.parent.parent.elementId.elementType + " r " + s.parent.parent.parent.childs.Length); s.parent.parent.Erase(); } }, }, }; } }, } });
public IEnumerator Find_AndUseState() { var letterState = new UseState <string>("Hello world"); // Create a reactor component REcanvas MainReactorComponent() { return(new REcanvas { childs = () => new REbase[] { new REtext { propsId = () => new REtext.IdSetter { id = "ProveText" }, propsText = () => new REtext.TextSetter { text = letterState.value, }, useState = new IuseState[] { letterState, }, childs = () => new REbase[] { new REimage(), new REimage(), } }, new REtext(), new REtext(), new REtext(), }, }); } var reactorComponent = MainReactorComponent(); yield return(new WaitForSecondsRealtime(1)); // Draw the component for the first time Debug.Log("Drawing"); reactorComponent.Draw(); yield return(new WaitForSecondsRealtime(1)); // Look fr the component Debug.Log("Finding"); var textSelector = REtext.FindOne("#ProveText"); // Check that the compoennt exist Assert.IsFalse(textSelector.isDisposed); Assert.IsFalse(textSelector.rectTransform == null); Assert.IsFalse(textSelector.gameObject == null); Assert.IsFalse(textSelector.parent == null); Assert.IsFalse(textSelector.childs == null); Assert.IsFalse(textSelector.brothersSelector == null); Assert.IsFalse(textSelector.canvasRenderer == null); Assert.IsTrue(textSelector.textCmp.text == "Hello world"); // Redraw the component Debug.Log("Changing and drawing again"); letterState.SetState("New text"); // Check that the selector references are now null Debug.Log("Changing and drawing again"); Assert.IsTrue(textSelector.isDisposed); Debug.Log("Changing and drawing again"); Assert.IsTrue(textSelector.rectTransform == null); Debug.Log("Changing and drawing again"); Assert.IsTrue(textSelector.gameObject == null); Debug.Log("Changing and drawing again"); Assert.IsTrue(textSelector.parent == null); Debug.Log("Changing and drawing again"); Assert.IsTrue(textSelector.childs == null); Debug.Log("Changing and drawing again"); Assert.IsTrue(textSelector.brothersSelector == null); Debug.Log("Changing and drawing again"); Assert.IsTrue(textSelector.canvasRenderer == null); Debug.Log("Changing and drawing again"); Assert.Throws <NullReferenceException>(() => Debug.Log("V: " + textSelector.rectTransform.rect)); Debug.Log("Changing and drawing again"); // Try to find again the component that it must exist Debug.Log("Finding again"); textSelector = REtext.FindOne("#ProveText"); // Check that the compoennt exist Assert.IsFalse(textSelector.isDisposed); Assert.IsFalse(textSelector.rectTransform == null); Assert.IsFalse(textSelector.gameObject == null); Assert.IsFalse(textSelector.parent == null); Assert.IsFalse(textSelector.childs == null); Assert.IsFalse(textSelector.brothersSelector == null); Assert.IsFalse(textSelector.canvasRenderer == null); Assert.IsTrue(textSelector.textCmp.text == "New text"); yield return(new WaitForSecondsRealtime(2)); reactorComponent.Erase(); }
private REcanvas SingnInView() { string usernameText = ""; string passwordText = ""; User currentUser = null; string error = "Write your credentials"; bool rememberme = false; // Hooks var viweState = new UseState <int>(0); var errorTrigger = new UseTrigger(); return(new REcanvas { childs = () => { // Profile if (viweState.value == 1) { return new REbase[] { new REpanelVertical { propsRectTransform = () => REpanelVertical.TableRectTransform(20, 80, 20, 80), propsVerticalLayoutGroup = () => new REpanelVertical.VerticalLayoutGroupSetter { childAlignment = TextAnchor.MiddleCenter, }, childs = () => new REbase[] { new REtext { propsText = () => new REtext.TextSetter { text = "Welcome " + currentUser.username, } }, new REtext { propsText = () => new REtext.TextSetter { text = "Username: "******"Password: "******"Logout" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { currentUser = null; error = "Write your credentials"; if (!rememberme) { usernameText = ""; passwordText = ""; } errorTrigger.Trigger(); viweState.SetState(0); } } }, new REtext { propsText = () => new REtext.TextSetter { text = error, }, useTrigger = new UseTrigger.Hook[] { new UseTrigger.Hook { hook = errorTrigger, OnTrigger = (s) => { REtext.CastSelector(s).textCmp.text = error; } } } }, new REbox { propsRectTransform = () => new REbox.RectTransformSetter { height = 400, width = 800, }, childs = () => new REbase[] { new REpanelVertical { childs = () => User.Find().Select(u => new REtext { propsText = () => new REtext.TextSetter { text = u.username, } } ), } } } } }, }; } // Sign Up Component else if (viweState.value == 3) { string newUsername = ""; string newPassword = ""; return new REbase[] { new REpanelVertical { propsRectTransform = () => REpanelVertical.TableRectTransform(20, 80, 20, 80), propsVerticalLayoutGroup = () => new REpanelVertical.VerticalLayoutGroupSetter { childAlignment = TextAnchor.MiddleCenter, }, childs = () => new REbase[] { new REtext { propsText = () => new REtext.TextSetter { text = "Sign Up" } }, new REtext { propsText = () => new REtext.TextSetter { text = "Username" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = newUsername, OnValueChangedListener = (v, s) => { newUsername = v; } } }, new REtext { propsText = () => new REtext.TextSetter { text = "Password" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = newPassword, OnValueChangedListener = (v, s) => { newPassword = v; } } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Create" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { var newUser = new User { username = newUsername, password = newPassword, }.Save(); if (newUser) { error = "Succesfull Created"; newUsername = ""; newPassword = ""; errorTrigger.Trigger(); viweState.SetState(0); } else { error = "Cant create a user"; errorTrigger.Trigger(); } } } }, new REtext { propsText = () => new REtext.TextSetter { text = error, }, useTrigger = new UseTrigger.Hook[] { new UseTrigger.Hook { hook = errorTrigger, OnTrigger = (s) => { REtext.CastSelector(s).textCmp.text = error; } } } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Sign In" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { error = "Write your credentials"; errorTrigger.Trigger(); viweState.SetState(0); } } }, } }, }; } // Sign In Component else { return new REbase[] { new REpanelVertical { propsRectTransform = () => REpanelVertical.TableRectTransform(20, 80, 20, 80), propsVerticalLayoutGroup = () => new REpanelVertical.VerticalLayoutGroupSetter { childAlignment = TextAnchor.MiddleCenter, }, childs = () => new REbase[] { new REtext { propsText = () => new REtext.TextSetter { text = "Sign In" } }, new REtext { propsText = () => new REtext.TextSetter { text = "Username" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = usernameText, OnValueChangedListener = (v, s) => { usernameText = v; } } }, new REtext { propsText = () => new REtext.TextSetter { text = "Password" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = passwordText, OnValueChangedListener = (v, s) => { passwordText = v; } } }, new REtoggle { propsText = () => new REtoggle.TextSetter { text = "Remember me" }, propsToggle = () => new REtoggle.ToggleSetter { isOn = rememberme, OnValueChangedListener = (v, s) => rememberme = v, } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Login" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { var findUser = User.Find(usernameText, passwordText); currentUser = findUser; if (findUser != null) { Debug.Log("Username: "******" Password: "******"Succesfull sign In"; errorTrigger.Trigger(); viweState.SetState(1); } else { error = "Invalid credentials, try again"; errorTrigger.Trigger(); } } } }, new REtext { propsText = () => new REtext.TextSetter { text = error, }, useTrigger = new UseTrigger.Hook[] { new UseTrigger.Hook { hook = errorTrigger, OnTrigger = (s) => { REtext.CastSelector(s).textCmp.text = error; } } } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Sign Up" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { error = "Create your credentials"; errorTrigger.Trigger(); viweState.SetState(3); } } }, } }, }; } }, useState = new IuseState[] { viweState, } }); }
private REcanvas SingnInView() { string usernameText = ""; string passwordText = ""; User currentUser = null; string message = "Write your credentials"; bool rememberme = false; // Hooks var viweState = new UseState <int>(0); var errorTrigger = new UseTrigger(); var usersList = new UseState <User[]>(new User[0]); var userslistRequest = false; return(new REcanvas { childs = () => { // Profile if (viweState.value == 1) { return new REbase[] { new REpanelVertical { propsRectTransform = () => REpanelVertical.TableRectTransform(20, 80, 20, 80), propsVerticalLayoutGroup = () => new REpanelVertical.VerticalLayoutGroupSetter { childAlignment = TextAnchor.MiddleCenter, }, childs = () => new REbase[] { new REtext { propsText = () => new REtext.TextSetter { text = "Welcome " + currentUser.username, } }, new REtext { propsText = () => new REtext.TextSetter { text = "Username: "******"Password: "******"Logout" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { currentUser = null; message = "Write your credentials"; if (!rememberme) { usernameText = ""; passwordText = ""; } errorTrigger.Trigger(); viweState.SetState(0); } } }, new REtext { propsText = () => new REtext.TextSetter { text = message, }, useTrigger = new UseTrigger.Hook[] { new UseTrigger.Hook { hook = errorTrigger, OnTrigger = (s) => { REtext.CastSelector(s).textCmp.text = message; } } } }, new REbox { propsRectTransform = () => new REbox.RectTransformSetter { height = 400, width = 800, }, childs = () => new REbase[] { new REpanelVertical { childs = () => usersList.value.Select(u => new REtext { propsText = () => new REtext.TextSetter { text = u.username, } }), } }, useState = new IuseState[] { usersList, }, useObjectEvents = new REbox.UseObjectEvents.Hook { onAwake = async(s) => { if (userslistRequest) { return; } Debug.Log("Requesting List ..."); try { var users = await User.Find(); userslistRequest = true; usersList.SetState(users); } catch (System.Exception) { } } }, } } , useObjectEvents = new REpanelVertical.UseObjectEvents.Hook { onDestroy = (s) => { userslistRequest = false; } }, }, }; } // Sign Up Component else if (viweState.value == 3) { string newUsername = ""; string newPassword = ""; return new REbase[] { new REpanelVertical { propsRectTransform = () => REpanelVertical.TableRectTransform(20, 80, 20, 80), propsVerticalLayoutGroup = () => new REpanelVertical.VerticalLayoutGroupSetter { childAlignment = TextAnchor.MiddleCenter, }, childs = () => new REbase[] { new REtext { propsText = () => new REtext.TextSetter { text = "Sign Up" } }, new REtext { propsText = () => new REtext.TextSetter { text = "Username" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = newUsername, OnValueChangedListener = (v, s) => { newUsername = v; } } }, new REtext { propsText = () => new REtext.TextSetter { text = "Password" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = newPassword, OnValueChangedListener = (v, s) => { newPassword = v; } } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Create" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = async(s) => { try { var newUser = await new User { username = newUsername, password = newPassword, }.Save(); if (newUser) { message = "Succesfull Created"; newUsername = ""; newPassword = ""; errorTrigger.Trigger(); viweState.SetState(0); } else { message = "Cant create a user"; errorTrigger.Trigger(); } } catch (System.Exception e) { message = e + ""; errorTrigger.Trigger(); } } } }, new REtext { propsText = () => new REtext.TextSetter { text = message, }, useTrigger = new UseTrigger.Hook[] { new UseTrigger.Hook { hook = errorTrigger, OnTrigger = (s) => { REtext.CastSelector(s).textCmp.text = message; } } } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Sign In" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { message = "Write your credentials"; errorTrigger.Trigger(); viweState.SetState(0); } } }, } }, }; } // Sign In Component else { return new REbase[] { // Get request new REpanelVertical { propsRectTransform = () => REpanelVertical.TableRectTransform(20, 80, 20, 80), propsVerticalLayoutGroup = () => new REpanelVertical.VerticalLayoutGroupSetter { childAlignment = TextAnchor.MiddleCenter, }, childs = () => new REbase[] { new REtext { propsText = () => new REtext.TextSetter { text = "Sign In" } }, new REtext { propsText = () => new REtext.TextSetter { text = "Username" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = usernameText, OnValueChangedListener = (v, s) => { usernameText = v; } } }, new REtext { propsText = () => new REtext.TextSetter { text = "Password" } }, new REinputField { propsInputField = () => new REinputField.InputFieldSetter { text = passwordText, OnValueChangedListener = (v, s) => { passwordText = v; } } }, new REtoggle { propsText = () => new REtoggle.TextSetter { text = "Remember me" }, propsToggle = () => new REtoggle.ToggleSetter { isOn = rememberme, OnValueChangedListener = (v, s) => rememberme = v, } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Login" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = async(s) => { try { var findUser = await User.Find(usernameText, passwordText); currentUser = findUser; } catch (System.Exception e) { message = e + ""; currentUser = null; errorTrigger.Trigger(); return; } if (currentUser != null) { Debug.Log("Username: "******" Password: "******"Succesfull sign In"; errorTrigger.Trigger(); viweState.SetState(1); } else { message = "Bad credentials"; errorTrigger.Trigger(); } } } }, new REtext { propsText = () => new REtext.TextSetter { text = message, }, useTrigger = new UseTrigger.Hook[] { new UseTrigger.Hook { hook = errorTrigger, OnTrigger = (s) => { REtext.CastSelector(s).textCmp.text = message; } } } }, new REbutton { propsText = () => new REbutton.TextSetter { text = "Sign Up" }, propsButton = () => new REbutton.ButtonSetter { OnClickListener = (s) => { message = "Create your credentials"; errorTrigger.Trigger(); viweState.SetState(3); } } }, } }, }; } }, useState = new IuseState[] { viweState, } }); }
public IEnumerator Hooks_UseState_VariableNumberOfStates() { var wordState = new UseState <string>("Hola a todos !!"); var fontSizeState = new UseState <int>(20); // A Component REcanvas MainReactorComponent() { return(new REcanvas { childs = () => new REbase[] { new REtext { propsId = () => new REtext.IdSetter { id = "ProveText" }, propsText = () => new REtext.TextSetter { text = wordState.value, fontSize = fontSizeState.value, }, useState = new IuseState[] { wordState, fontSizeState, }, }, }, }); } var routerProve = MainReactorComponent(); yield return(new WaitForSecondsRealtime(1)); // Draw the component routerProve.Draw(); Debug.Log("Check"); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "Hola a todos !!"); yield return(new WaitForSecondsRealtime(1)); // Erase the component routerProve.Erase(); wordState.SetState("NewWord"); wordState.SetState("OtherWord"); fontSizeState.SetState(23); wordState.PrevState(); wordState.SetState("OtherWord"); fontSizeState.SetState(44); wordState.SetState("Word"); wordState.SetState("LastWord"); fontSizeState.SetState(39); wordState.SetState("FinalWord"); fontSizeState.SetState(34); // Draw the component again routerProve.Draw(); Debug.Log("Check"); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "FinalWord"); yield return(new WaitForSecondsRealtime(2)); routerProve.Erase(); }
public IEnumerator Hooks_UseState_InDisabledCanvas() { var alphaState = new UseState <float>(0f); // A Component REcanvas MainReactorComponent() { return(new REcanvas { propsId = () => new REcanvas.IdSetter { id = "ProveCanvas" }, propsCanvasGroup = () => new REcanvas.CanvasGroupSetter { alpha = alphaState.value, }, useState = new IuseState[] { alphaState, }, childs = () => new REbase[] { new REtext(), }, }); } var routerProve = MainReactorComponent(); yield return(new WaitForSecondsRealtime(1)); // Drawing the component Debug.Log("Drawing"); routerProve.Draw(); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == 0f); yield return(new WaitForSecondsRealtime(1)); // Hide the element routerProve.Disable(); Assert.IsFalse(REbase.FindOne("#ProveCanvas").gameObject.activeSelf); // Change the states alphaState.SetState(.33f); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .33f); // Will disable after one frame, because need to be active to calculate all the rect transform parameters yield return(new WaitForSecondsRealtime(.3f)); Assert.IsFalse(REbase.FindOne("#ProveCanvas").gameObject.activeSelf); alphaState.SetState(.66f); // Will disable after one frame, because need to be active to calculate all the rect transform parameters yield return(new WaitForSecondsRealtime(.3f)); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .66f); Assert.IsFalse(REbase.FindOne("#ProveCanvas").gameObject.activeSelf); alphaState.PrevState(); // Will disable after one frame, because need to be active to calculate all the rect transform parameters yield return(new WaitForSecondsRealtime(.3f)); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .33f); Assert.IsFalse(REbase.FindOne("#ProveCanvas").gameObject.activeSelf); // Enable and check routerProve.Enable(); // Will disable after one frame, because need to be active to calculate all the rect transform parameters yield return(new WaitForSecondsRealtime(.3f)); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .33f); Assert.IsTrue(REbase.FindOne("#ProveCanvas").gameObject.activeSelf); yield return(new WaitForSecondsRealtime(2)); routerProve.Erase(); }
public IEnumerator Hooks_UseState_InHidedCanvas() { var alphaState = new UseState <float>(0f); // A Component REcanvas MainReactorComponent() { return(new REcanvas { propsId = () => new REcanvas.IdSetter { id = "ProveCanvas" }, propsCanvasGroup = () => new REcanvas.CanvasGroupSetter { alpha = alphaState.value, }, useState = new IuseState[] { alphaState, }, childs = () => new REbase[] { new REtext(), }, }); } var routerProve = MainReactorComponent(); yield return(new WaitForSecondsRealtime(1)); // Drawing the component Debug.Log("Drawing"); routerProve.Draw(); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == 0f); yield return(new WaitForSecondsRealtime(1)); // Hide the element routerProve.Hide(); Assert.IsFalse(REbase.FindOne("#ProveCanvas").rootCanvasSelector.canvas.enabled); // Change the states alphaState.SetState(.33f); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .33f); Assert.IsFalse(REcanvas.FindOne("#ProveCanvas").rootCanvasSelector.canvas.enabled); alphaState.SetState(.66f); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .66f); Assert.IsFalse(REcanvas.FindOne("#ProveCanvas").rootCanvasSelector.canvas.enabled); alphaState.PrevState(); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .33f); Assert.IsFalse(REcanvas.FindOne("#ProveCanvas").rootCanvasSelector.canvas.enabled); // Enable and check routerProve.Show(); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").canvasGroup.alpha == .33f); Assert.IsTrue(REcanvas.FindOne("#ProveCanvas").rootCanvasSelector.canvas.enabled); yield return(new WaitForSecondsRealtime(2)); routerProve.Erase(); }
public IEnumerator Hooks_UseState_InDisabledElements() { var wordState = new UseState <string>("Hola a todos !!"); // A Component REcanvas MainReactorComponent() { return(new REcanvas { childs = () => new REbase[] { new REtext { propsId = () => new REtext.IdSetter { id = "ProveText" }, propsText = () => new REtext.TextSetter { text = wordState.value, }, useState = new IuseState[] { wordState, }, }, }, }); } var routerProve = MainReactorComponent(); yield return(new WaitForSecondsRealtime(1)); // Drawing the component Debug.Log("Drawing"); routerProve.Draw(); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "Hola a todos !!"); yield return(new WaitForSecondsRealtime(1)); // Hide the element routerProve.Disable(); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); // Change the states wordState.SetState("NewWord"); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "NewWord"); wordState.SetState("OtherWord"); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "OtherWord"); wordState.PrevState(); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "NewWord"); wordState.SetState("OtherWord"); wordState.SetState("Word"); wordState.SetState("LastWord"); wordState.SetState("FinalWord"); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "FinalWord"); wordState.PrevState(1); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "LastWord"); wordState.PrevState(2); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "OtherWord"); wordState.PrevState(10); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "Hola a todos !!"); wordState.PrevState(); Debug.Log("Check"); Assert.IsFalse(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "Hola a todos !!"); Debug.Log("Check"); // Enable and check routerProve.Enable(); Assert.IsTrue(REbase.FindOne("#ProveText").gameObject.activeInHierarchy); Assert.IsTrue(REtext.FindOne("#ProveText").textCmp.text == "Hola a todos !!"); Debug.Log("Check"); yield return(new WaitForSecondsRealtime(2)); routerProve.Erase(); }