public override Widget build(BuildContext context) { return(new StoreConnector <AppState, ArticlesScreenViewModel>( converter: state => new ArticlesScreenViewModel { isLoggedIn = state.loginState.isLoggedIn, feedHasNew = state.articleState.feedHasNew, currentTabBarIndex = state.tabBarState.currentTabIndex, nationalDayEnabled = state.serviceConfigState.nationalDayEnabled }, builder: (context1, viewModel, dispatcher) => { var actionModel = new ArticlesScreenActionModel { pushToSearch = () => { dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Search }); AnalyticsManager.ClickEnterSearch("Home_Article"); }, pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Login }), pushToReality = () => { dispatcher.dispatch(new EnterRealityAction()); AnalyticsManager.AnalyticsClickEgg(1); } }; return new ArticlesScreen(viewModel: viewModel, actionModel: actionModel); } )); }
public override Widget build(BuildContext context) { return(new StoreConnector <AppState, ArticlesScreenViewModel>( converter: state => new ArticlesScreenViewModel { isLoggedIn = state.loginState.isLoggedIn, showFirstEgg = state.eggState.showFirst }, builder: (context1, viewModel, dispatcher) => { var actionModel = new ArticlesScreenActionModel { pushToSearch = () => { dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Search }); AnalyticsManager.ClickEnterSearch("Home_Article"); }, fetchReviewUrl = () => dispatcher.dispatch <IPromise>(Actions.fetchReviewUrl()), pushToReality = () => { dispatcher.dispatch(new EnterRealityAction()); AnalyticsManager.AnalyticsClickEgg(1); } }; return new ArticlesScreen(viewModel, actionModel); } )); }
public override Widget build(BuildContext context) { return(new StoreConnector <AppState, ArticlesScreenViewModel>( converter: state => new ArticlesScreenViewModel { articlesLoading = state.articleState.articlesLoading, recommendArticleIds = state.articleState.recommendArticleIds, articleDict = state.articleState.articleDict, blockArticleList = state.articleState.blockArticleList, hottestHasMore = state.articleState.hottestHasMore, userDict = state.userState.userDict, teamDict = state.teamState.teamDict, isLoggedIn = state.loginState.isLoggedIn, hosttestOffset = state.articleState.recommendArticleIds.Count, showFirstEgg = state.eggState.showFirst }, builder: (context1, viewModel, dispatcher) => { var actionModel = new ArticlesScreenActionModel { pushToSearch = () => { dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Search }); AnalyticsManager.ClickEnterSearch("Home_Article"); }, pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Login }), pushToArticleDetail = id => dispatcher.dispatch( new MainNavigatorPushToArticleDetailAction { articleId = id } ), pushToReport = (reportId, reportType) => dispatcher.dispatch( new MainNavigatorPushToReportAction { reportId = reportId, reportType = reportType } ), pushToBlock = articleId => { dispatcher.dispatch(new BlockArticleAction { articleId = articleId }); dispatcher.dispatch(new DeleteArticleHistoryAction { articleId = articleId }); }, startFetchArticles = () => dispatcher.dispatch(new StartFetchArticlesAction()), fetchArticles = offset => dispatcher.dispatch <IPromise>(Actions.fetchArticles(offset: offset)), shareToWechat = (type, title, description, linkUrl, imageUrl) => dispatcher.dispatch <IPromise>( Actions.shareToWechat(type, title, description, linkUrl, imageUrl)), pushToReality = () => { dispatcher.dispatch(new EnterRealityAction()); AnalyticsManager.AnalyticsClickEgg(1); } }; return new RecommendArticleScreen(viewModel: viewModel, actionModel: actionModel); } )); }
public ArticlesScreen( ArticlesScreenViewModel viewModel = null, ArticlesScreenActionModel actionModel = null, Key key = null ) : base(key) { this.viewModel = viewModel; this.actionModel = actionModel; }
public override Widget build(BuildContext context) { return(new StoreConnector <AppState, ArticlesScreenViewModel>( converter: state => new ArticlesScreenViewModel { isLoggedIn = state.loginState.isLoggedIn, feedHasNew = state.articleState.feedHasNew, searchSuggest = state.articleState.searchSuggest, currentTabBarIndex = state.tabBarState.currentTabIndex, nationalDayEnabled = state.serviceConfigState.nationalDayEnabled }, builder: (context1, viewModel, dispatcher) => { var actionModel = new ArticlesScreenActionModel { pushToSearch = () => { dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Search }); AnalyticsManager.ClickEnterSearch("Home_Article"); }, pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Login }), pushToReality = () => { dispatcher.dispatch(new EnterRealityAction()); AnalyticsManager.AnalyticsClickEgg(1); }, pushToGame = () => { if (CCommonUtils.isIPhone) { dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Game }); } else { var url = LocalDataManager.getTinyGameUrl(); if (url.isEmpty() || url.Equals("no_game")) { CustomToast.show(new CustomToastItem( context: context, "暂无游戏", TimeSpan.FromMilliseconds(2000) )); return; } dispatcher.dispatch(new MainNavigatorPushToWebViewAction { url = url, landscape = true, fullscreen = true, showOpenInBrowser = false }); } } }; return new ArticlesScreen(viewModel: viewModel, actionModel: actionModel); } )); }
public override Widget build(BuildContext context) { return(new StoreConnector <AppState, ArticlesScreenViewModel>( converter: state => new ArticlesScreenViewModel { articlesLoading = state.articleState.articlesLoading, articleList = state.articleState.articleList, articleDict = state.articleState.articleDict, blockArticleList = state.articleState.blockArticleList, hottestHasMore = state.articleState.hottestHasMore, userDict = state.userState.userDict, teamDict = state.teamState.teamDict, isLoggedIn = state.loginState.isLoggedIn, hosttestOffset = state.articleState.articleList.Count }, builder: (context1, viewModel, dispatcher) => { var actionModel = new ArticlesScreenActionModel { pushToSearch = () => { dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Search }); AnalyticsManager.ClickEnterSearch("Home_Article"); }, pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Login }), pushToArticleDetail = id => dispatcher.dispatch( new MainNavigatorPushToArticleDetailAction { articleId = id } ), pushToReport = (reportId, reportType) => dispatcher.dispatch( new MainNavigatorPushToReportAction { reportId = reportId, reportType = reportType } ), pushToBlock = articleId => { dispatcher.dispatch(new BlockArticleAction { articleId = articleId }); dispatcher.dispatch(new DeleteArticleHistoryAction { articleId = articleId }); }, startFetchArticles = () => dispatcher.dispatch(new StartFetchArticlesAction()), fetchArticles = offset => dispatcher.dispatch <IPromise>(Actions.fetchArticles(offset)), fetchReviewUrl = () => dispatcher.dispatch <IPromise>(Actions.fetchReviewUrl()) }; return new ArticlesScreen(viewModel, actionModel); } )); }
public override Widget build(BuildContext context) { return(new StoreConnector <AppState, ArticlesScreenViewModel>( converter: state => { var currentUserId = state.loginState.loginInfo.userId ?? ""; var followArticleIds = state.articleState.followArticleIdDict.ContainsKey(key: currentUserId) ? state.articleState.followArticleIdDict[key: currentUserId] : new List <string>(); var hotArticleIds = state.articleState.hotArticleIdDict.ContainsKey(key: currentUserId) ? state.articleState.hotArticleIdDict[key: currentUserId] : new List <string>(); var user = state.userState.userDict.ContainsKey(key: currentUserId) ? state.userState.userDict[key: currentUserId] : new User(); var followings = user.followings ?? new List <Following>(); var likeMap = state.likeState.likeDict.ContainsKey(key: currentUserId) ? state.likeState.likeDict[key: currentUserId] : new Dictionary <string, bool>(); var followMap = state.followState.followDict.ContainsKey(key: currentUserId) ? state.followState.followDict[key: currentUserId] : new Dictionary <string, bool>(); return new ArticlesScreenViewModel { followArticlesLoading = state.articleState.followArticlesLoading, followingLoading = state.userState.followingLoading, followArticleIds = followArticleIds, hotArticleIds = hotArticleIds, followings = followings, blockArticleList = state.articleState.blockArticleList, followArticleHasMore = state.articleState.followArticleHasMore, hotArticleHasMore = state.articleState.hotArticleHasMore, hotArticlePage = state.articleState.hotArticlePage, articleDict = state.articleState.articleDict, userDict = state.userState.userDict, userLicenseDict = state.userState.userLicenseDict, teamDict = state.teamState.teamDict, likeMap = likeMap, followMap = followMap, isLoggedIn = state.loginState.isLoggedIn, currentUserId = state.loginState.loginInfo.userId ?? "", beforeTime = state.articleState.beforeTime, afterTime = state.articleState.afterTime }; }, builder: (context1, viewModel, dispatcher) => { var actionModel = new ArticlesScreenActionModel { pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Login }), pushToArticleDetail = id => dispatcher.dispatch( new MainNavigatorPushToArticleDetailAction { articleId = id } ), pushToReport = (reportId, reportType) => dispatcher.dispatch( new MainNavigatorPushToReportAction { reportId = reportId, reportType = reportType } ), pushToBlock = articleId => { dispatcher.dispatch(new BlockArticleAction { articleId = articleId }); dispatcher.dispatch(new DeleteArticleHistoryAction { articleId = articleId }); }, pushToUserFollowing = userId => dispatcher.dispatch( new MainNavigatorPushToUserFollowingAction { userId = userId } ), pushToUserDetail = userId => dispatcher.dispatch( new MainNavigatorPushToUserDetailAction { userId = userId } ), pushToTeamDetail = teamId => dispatcher.dispatch( new MainNavigatorPushToTeamDetailAction { teamId = teamId } ), startFollowUser = userId => dispatcher.dispatch(new StartFollowUserAction { followUserId = userId }), followUser = userId => dispatcher.dispatch <IPromise>(Actions.fetchFollowUser(userId)), startUnFollowUser = userId => dispatcher.dispatch(new StartUnFollowUserAction { unFollowUserId = userId }), unFollowUser = userId => dispatcher.dispatch <IPromise>(Actions.fetchUnFollowUser(userId)), startFollowTeam = teamId => dispatcher.dispatch(new StartFetchFollowTeamAction { followTeamId = teamId }), followTeam = teamId => dispatcher.dispatch <IPromise>(Actions.fetchFollowTeam(teamId)), startUnFollowTeam = teamId => dispatcher.dispatch(new StartFetchUnFollowTeamAction { unFollowTeamId = teamId }), unFollowTeam = teamId => dispatcher.dispatch <IPromise>(Actions.fetchUnFollowTeam(teamId)), sendComment = (articleId, channelId, content, nonce, parentMessageId, upperMessageId) => { CustomDialogUtils.showCustomDialog(child: new CustomLoadingDialog()); return dispatcher.dispatch <IPromise>( Actions.sendComment(articleId, channelId, content, nonce, parentMessageId, upperMessageId)); }, likeArticle = articleId => dispatcher.dispatch <IPromise>(Actions.likeArticle(articleId: articleId)), startFetchFollowing = () => dispatcher.dispatch(new StartFetchFollowingAction()), fetchFollowing = (userId, offset) => dispatcher.dispatch <IPromise>(Actions.fetchFollowing(userId: userId, offset: offset)), startFetchFollowArticles = () => dispatcher.dispatch(new StartFetchFollowArticlesAction()), fetchFollowArticles = (pageNumber, isFirst, isHot) => dispatcher.dispatch <IPromise>(Actions.fetchFollowArticles(pageNumber, viewModel.beforeTime, viewModel.afterTime, isFirst, isHot)), shareToWechat = (type, title, description, linkUrl, imageUrl) => dispatcher.dispatch <IPromise>( Actions.shareToWechat(type, title, description, linkUrl, imageUrl)) }; return new FollowArticleScreen(viewModel: viewModel, actionModel: actionModel); } )); }
public override Widget build(BuildContext context) { return(new StoreConnector <AppState, ArticlesScreenViewModel>( converter: state => new ArticlesScreenViewModel { articlesLoading = state.articleState.articlesLoading, recommendArticleIds = state.articleState.recommendArticleIds, articleDict = state.articleState.articleDict, blockArticleList = state.articleState.blockArticleList, hottestHasMore = state.articleState.hottestHasMore, userDict = state.userState.userDict, teamDict = state.teamState.teamDict, followMap = state.followState.followDict.ContainsKey(state.loginState.loginInfo.userId ?? "") ? state.followState.followDict[state.loginState.loginInfo.userId ?? ""] : new Dictionary <string, bool>(), favoriteTagDict = state.favoriteState.favoriteTagDict, favoriteTagArticleDict = state.favoriteState.favoriteTagArticleDict, rankDict = state.leaderBoardState.rankDict, homeSliderIds = state.articleState.homeSliderIds, homeTopCollectionIds = state.articleState.homeTopCollectionIds, homeCollectionIds = state.articleState.homeCollectionIds, homeBloggerIds = state.articleState.homeBloggerIds, dailySelectionId = state.articleState.dailySelectionId, isLoggedIn = state.loginState.isLoggedIn, hosttestOffset = state.articleState.recommendArticleIds.Count, currentUserId = state.loginState.loginInfo.userId ?? "", leaderBoardUpdatedTime = state.articleState.leaderBoardUpdatedTime, selectedIndex = this.selectedIndex, hasNewArticle = state.articleState.recommendHasNewArticle }, builder: (context1, viewModel, dispatcher) => { var actionModel = new ArticlesScreenActionModel { pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Login }), pushToArticleDetail = id => dispatcher.dispatch( new MainNavigatorPushToArticleDetailAction { articleId = id } ), openUrl = JPushPlugin.openUrlScheme, pushToLeaderBoard = () => dispatcher.dispatch(new MainNavigatorPushToLeaderBoardAction()), pushToLeaderBoardDetail = id => dispatcher.dispatch(new MainNavigatorPushToLeaderBoardDetailAction { id = id } ), pushToHomeEvent = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.HomeEvent }), pushToBlogger = () => dispatcher.dispatch(new MainNavigatorPushToAction { routeName = MainNavigatorRoutes.Blogger }), pushToUserDetail = userId => dispatcher.dispatch(new MainNavigatorPushToUserDetailAction { userId = userId }), pushToReport = (reportId, reportType) => dispatcher.dispatch( new MainNavigatorPushToReportAction { reportId = reportId, reportType = reportType } ), pushToBlock = articleId => { dispatcher.dispatch(new BlockArticleAction { articleId = articleId }); dispatcher.dispatch(new DeleteArticleHistoryAction { articleId = articleId }); }, startFetchArticles = () => dispatcher.dispatch(new StartFetchArticlesAction()), fetchArticles = (userId, offset) => dispatcher.dispatch <IPromise>(Actions.fetchArticles(userId: userId, offset: offset)), startFollowUser = userId => dispatcher.dispatch(new StartFollowUserAction { followUserId = userId }), followUser = userId => dispatcher.dispatch <IPromise>(Actions.fetchFollowUser(followUserId: userId)), startUnFollowUser = userId => dispatcher.dispatch(new StartUnFollowUserAction { unFollowUserId = userId }), unFollowUser = userId => dispatcher.dispatch <IPromise>(Actions.fetchUnFollowUser(userId)), shareToWechat = (type, title, description, linkUrl, imageUrl) => dispatcher.dispatch <IPromise>( Actions.shareToWechat(type, title, description, linkUrl, imageUrl)) }; return new RecommendArticleScreen(viewModel: viewModel, actionModel: actionModel); } )); }