Exemple #1
0
        public PokedexPage()
        {
            InitializeComponent();

            // Observe changes on state
            Store.Select(
                CombineSelectors(SelectLoading, SelectIsPokedexEmpty)
                )
            .ObserveOnDispatcher()
            .Subscribe(x =>
            {
                var(loading, isPokedexEmpty) = x;

                OpenPokedexButton.ShowIf(!loading && isPokedexEmpty);

                GlobalLoadingProgressRing.IsActive = loading && isPokedexEmpty;
                GlobalLoadingProgressRing.ShowIf(loading && isPokedexEmpty);
                RootStackPanel.ShowIf(!isPokedexEmpty);
            });

            Store.Select(SelectSuggestions, 5)
            .ObserveOnDispatcher()
            .Subscribe(suggestions =>
            {
                AutoSuggestBox.ItemsSource = suggestions;
            });

            Store.Select(SelectPokemon)
            .ObserveOnDispatcher()
            .Subscribe(pokemon =>
            {
                PokemonPanel.ShowIf(pokemon.HasValue);
                PokemonIdTextBlock.Text   = pokemon.HasValue ? $"#{pokemon.Value.Id}" : string.Empty;
                PokemonNameTextBlock.Text = pokemon.HasValue ? pokemon.Value.Name : string.Empty;
                PokemonImage.Source       = pokemon.HasValue ? new BitmapImage(new Uri(pokemon.Value.Image)) : null;
            });

            Store.Select(SelectErrors)
            .ObserveOnDispatcher()
            .Subscribe(errors =>
            {
                ErrorsListView.ItemsSource = errors;
            });

            // Observe UI events
            OpenPokedexButton.Events().Click
            .ObserveOnDispatcher()
            .Subscribe(_ => Store.Dispatch(new GetPokemonListAction()));

            AutoSuggestBox.Events().TextChanged
            .ObserveOnDispatcher()
            .Subscribe(_ =>
            {
                Store.Dispatch(new UpdateSearchStringAction {
                    Search = AutoSuggestBox.Text
                });
            });

            AutoSuggestBox.Events().SuggestionChosen
            .ObserveOnDispatcher()
            .Subscribe(e =>
            {
                var selectedPokemonOption = (e.SelectedItem as PokemonGeneralInfo).ToOption();
                if (selectedPokemonOption.HasValue)
                {
                    AutoSuggestBox.Text = selectedPokemonOption.Value.Name;     // Avoid the automatic change of the Text property of SuggestBox
                    Store.Dispatch(new UpdateSearchStringAction {
                        Search = selectedPokemonOption.Value.Name
                    });
                }
            });

            // Register Effects
            Store.RegisterEffects(
                LoadPokemonList,
                LoadPokemonById,
                SearchPokemon
                );

            // Initialize Documentation
            DocumentationComponent.LoadMarkdownFilesAsync("Pokedex");

            GoToGitHubButton.Events().Click
            .Subscribe(async _ =>
            {
                var uri = new Uri("https://github.com/Odonno/ReduxSimple/tree/master/ReduxSimple.Samples/Pokedex");
                await Launcher.LaunchUriAsync(uri);
            });

            OpenDevToolsButton.Events().Click
            .Subscribe(async _ =>
            {
                await Store.OpenDevToolsAsync();
            });

            ContentGrid.Events().Tapped
            .Subscribe(_ => DocumentationComponent.Collapse());
            DocumentationComponent.ObserveOnExpanded()
            .Subscribe(_ => ContentGrid.Blur(5).Start());
            DocumentationComponent.ObserveOnCollapsed()
            .Subscribe(_ => ContentGrid.Blur(0).Start());
        }
Exemple #2
0
        public UserProfileSettingsFlyout()
        {
            Showed += (s, e) => { RootScrollViewer.ChangeView(null, 0.0, null, true); };

            InitializeComponent();

            Loaded += (s, e) =>
            {
                RootStackPanel.AddHandler(PointerWheelChangedEvent,
                                          new PointerEventHandler(RootStackPanel_PointerWheelChanged), true);

                RootScrollViewer.ViewChanged           += RootScrollViewer_ViewChanged;
                UserProfileTweetPivot.SelectionChanged += UserProfileTweetPivot_SelectionChanged;

                UserProfileStatusesListView.PointerWheelChanged  += UserProfilePivotListView_PointerWheelChanged;
                UserProfileFavoritesListView.PointerWheelChanged += UserProfilePivotListView_PointerWheelChanged;
                UserProfileFollowingListView.PointerWheelChanged += UserProfilePivotListView_PointerWheelChanged;
                UserProfileFollowersListView.PointerWheelChanged += UserProfilePivotListView_PointerWheelChanged;
            };

            UserProfileStatusesListView.Loaded += (s, e) =>
            {
                _userProfileStatusesListViewScrollViewer =
                    VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(UserProfileStatusesListView, 0),
                                              0) as ScrollViewer;
                _userProfileStatusesListViewScrollViewer.ViewChanged += UserProfilePivotListView_ViewChanged;

                RootScrollViewer_ViewChanged(RootScrollViewer, null);
            };

            UserProfileFavoritesListView.Loaded += (s, e) =>
            {
                _userProfileFavoritesListViewScrollViewer =
                    VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(UserProfileFavoritesListView, 0),
                                              0) as ScrollViewer;
                _userProfileFavoritesListViewScrollViewer.ViewChanged += UserProfilePivotListView_ViewChanged;

                RootScrollViewer_ViewChanged(RootScrollViewer, null);
            };

            UserProfileFollowingListView.Loaded += (s, e) =>
            {
                _userProfileFollowingListViewScrollViewer =
                    VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(UserProfileFollowingListView, 0),
                                              0) as ScrollViewer;
                _userProfileFollowingListViewScrollViewer.ViewChanged += UserProfilePivotListView_ViewChanged;

                RootScrollViewer_ViewChanged(RootScrollViewer, null);
            };

            UserProfileFollowersListView.Loaded += (s, e) =>
            {
                _userProfileFollowersListViewScrollViewer =
                    VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(UserProfileFollowersListView, 0),
                                              0) as ScrollViewer;
                _userProfileFollowersListViewScrollViewer.ViewChanged += UserProfilePivotListView_ViewChanged;

                RootScrollViewer_ViewChanged(RootScrollViewer, null);
            };

            SizeChanged += UserProfileSettingsFlyout_SizeChanged;
            UserProfileSettingsFlyout_SizeChanged(null, null);
        }