Skip to content

Commit 67862e1

Browse files
committed
Add: SerializableNavigationOptions
1 parent c04d2bb commit 67862e1

4 files changed

Lines changed: 60 additions & 6 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using UnityEngine;
3+
4+
namespace NavStack.Internal
5+
{
6+
[Serializable]
7+
public sealed class SerializableNavigationOptions
8+
{
9+
[SerializeField] bool animated = true;
10+
[SerializeField] NavigationAwaitOperation awaitOperation = NavigationAwaitOperation.Error;
11+
12+
public bool Animated
13+
{
14+
get => animated;
15+
set => animated = value;
16+
}
17+
18+
public NavigationAwaitOperation AwaitOperation
19+
{
20+
get => awaitOperation;
21+
set => awaitOperation = value;
22+
}
23+
24+
public SerializableNavigationOptions()
25+
{
26+
}
27+
28+
public SerializableNavigationOptions(NavigationOptions source)
29+
{
30+
animated = source.Animated;
31+
awaitOperation = source.AwaitOperation;
32+
}
33+
34+
public NavigationOptions ToNavigationOptions()
35+
{
36+
return new NavigationOptions()
37+
{
38+
Animated = animated,
39+
AwaitOperation = awaitOperation,
40+
};
41+
}
42+
}
43+
}

src/NavStack/Assets/NavStack/Runtime/Internal/SerializableNavigationOptions.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/NavStack/Assets/NavStack/Runtime/UI/NavigationSheet.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace NavStack.UI
1313
public class NavigationSheet : MonoBehaviour, INavigationSheet
1414
{
1515
[SerializeField] RectTransform parentTransform;
16-
[SerializeField] NavigationOptions defaultOptions;
16+
[SerializeField] SerializableNavigationOptions defaultOptions;
1717

1818
readonly NavigationSheetCore core = new();
1919

@@ -32,8 +32,8 @@ public event Action<IPage> OnPageDetached
3232
public IPage ActivePage => core.ActivePage;
3333
public NavigationOptions DefaultOptions
3434
{
35-
get => defaultOptions;
36-
set => defaultOptions = value;
35+
get => defaultOptions.ToNavigationOptions();
36+
set => defaultOptions = new(value);
3737
}
3838

3939
protected virtual void Awake()

src/NavStack/Assets/NavStack/Runtime/UI/NavigationStack.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace NavStack.UI
1313
public class NavigationStack : MonoBehaviour, INavigationStack
1414
{
1515
[SerializeField] RectTransform parentTransform;
16-
[SerializeField] NavigationOptions defaultOptions;
16+
[SerializeField] SerializableNavigationOptions defaultOptions;
1717

1818
readonly NavigationStackCore core = new();
1919

@@ -32,8 +32,8 @@ public event Action<IPage> OnPageDetached
3232
public IReadOnlyCollection<IPage> Pages => core.Pages;
3333
public NavigationOptions DefaultOptions
3434
{
35-
get => defaultOptions;
36-
set => defaultOptions = value;
35+
get => defaultOptions.ToNavigationOptions();
36+
set => defaultOptions = new(value);
3737
}
3838

3939
protected virtual void Awake()

0 commit comments

Comments
 (0)