add gs
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function(gameSortName, placeIds)
|
||||
return {
|
||||
name = gameSortName,
|
||||
placeIds = placeIds or {},
|
||||
}
|
||||
end)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function(games)
|
||||
return {
|
||||
games = games,
|
||||
}
|
||||
end)
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function()
|
||||
return {}
|
||||
end)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function(gameSortName)
|
||||
return {
|
||||
gameSortName = gameSortName,
|
||||
}
|
||||
end)
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function()
|
||||
return {}
|
||||
end)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function(gameSortName)
|
||||
return {
|
||||
gameSortName = gameSortName,
|
||||
}
|
||||
end)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function(gameSortName)
|
||||
return {
|
||||
gameSortName = gameSortName,
|
||||
}
|
||||
end)
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function()
|
||||
return {}
|
||||
end)
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function()
|
||||
return {}
|
||||
end)
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
local Modules = game:GetService("CoreGui").RobloxGui.Modules
|
||||
local LuaApp = Modules.LuaApp
|
||||
local LuaChat = Modules.LuaChat
|
||||
local ShareGameToChatActions = LuaChat.Actions.ShareGameToChatFromChat
|
||||
|
||||
local AddGamesBySort = require(ShareGameToChatActions.AddGamesBySortShareGameToChatFromChat)
|
||||
local AddGamesInformation = require(ShareGameToChatActions.AddGamesInformationShareGameToChatFromChat)
|
||||
local Constants = require(LuaChat.Constants)
|
||||
local ClearAllGamesInSorts = require(ShareGameToChatActions.ClearAllGamesInSortsShareGameToChatFromChat)
|
||||
local FailedToFetchGamesBySort = require(ShareGameToChatActions.FailedToFetchGamesBySortShareGameToChatFromChat)
|
||||
local FailedToShareGameToChat = require(ShareGameToChatActions.FailedToShareGameToChatFromChat)
|
||||
local FetchedGamesBySort = require(ShareGameToChatActions.FetchedGamesBySortShareGameToChatFromChat)
|
||||
local FetchingGamesBySort = require(ShareGameToChatActions.FetchingGamesBySortShareGameToChatFromChat)
|
||||
local PopRoute = require(LuaChat.Actions.PopRoute)
|
||||
local ResetShareGame = require(ShareGameToChatActions.ResetShareGameToChatFromChat)
|
||||
local ResetShareGameToChatAsync = require(ShareGameToChatActions.ResetShareGameToChatFromChatAsync)
|
||||
local SharedGameToChat = require(ShareGameToChatActions.SharedGameToChatFromChat)
|
||||
local SharingGameToChat = require(ShareGameToChatActions.SharingGameToChatFromChat)
|
||||
local ShowToast = require(LuaChat.Actions.ShowToast)
|
||||
local ToastModel = require(LuaChat.Models.ToastModel)
|
||||
local SetGameThumbnails = require(LuaApp.Actions.SetGameThumbnails)
|
||||
local UpdateGameSortsTokens = require(ShareGameToChatActions.UpdateGameSortsTokensShareGameToChatFromChat)
|
||||
local WebApi = require(LuaChat.WebApi)
|
||||
|
||||
local SHARED_GAMES_SORT = "GamesAllSorts"
|
||||
|
||||
local ShareGameToChatFromChatThunks = {}
|
||||
|
||||
function ShareGameToChatFromChatThunks.FetchGames(gameSortName, fetchedThumbnailSize)
|
||||
return function(store)
|
||||
spawn(function()
|
||||
if store:getState().ChatAppReducer.ShareGameToChatAsync.fetchingGamesBySort[gameSortName] then
|
||||
return
|
||||
end
|
||||
|
||||
store:dispatch(FetchingGamesBySort(gameSortName))
|
||||
|
||||
if not store:getState().ChatAppReducer.SharedGameSorts[gameSortName]
|
||||
or not store:getState().ChatAppReducer.SharedGameSorts[gameSortName].tokenExpiry
|
||||
or store:getState().ChatAppReducer.SharedGameSorts[gameSortName].tokenExpiry < tick() then
|
||||
local gameSorts = WebApi.GetGamesSorts(SHARED_GAMES_SORT)
|
||||
if not gameSorts then
|
||||
store:dispatch(FailedToFetchGamesBySort(gameSortName))
|
||||
warn("Failed to get game sorts")
|
||||
return
|
||||
end
|
||||
|
||||
store:dispatch(UpdateGameSortsTokens(gameSorts))
|
||||
end
|
||||
|
||||
local gamesList = nil
|
||||
if store:getState().ChatAppReducer.SharedGameSorts[gameSortName] and
|
||||
store:getState().ChatAppReducer.SharedGameSorts[gameSortName].token then
|
||||
gamesList = WebApi.GetGamesInSortByToken(store:getState().ChatAppReducer.SharedGameSorts[gameSortName].token)
|
||||
end
|
||||
|
||||
if gamesList then
|
||||
local placeIds = {}
|
||||
local newPlaceIds = {}
|
||||
local games = {}
|
||||
|
||||
for _, game in pairs(gamesList) do
|
||||
table.insert(placeIds, game.placeId)
|
||||
if not store:getState().ChatAppReducer.SharedGamesInfo[game.placeId] then
|
||||
games[game.placeId] = game
|
||||
end
|
||||
|
||||
if not store:getState().ChatAppReducer.SharedGamesInfo[game.placeId] or
|
||||
not store:getState().ChatAppReducer.SharedGamesInfo[game.placeId].url then
|
||||
table.insert(newPlaceIds, game.placeId)
|
||||
end
|
||||
end
|
||||
|
||||
if #newPlaceIds > 0 then
|
||||
local _, placesInfo = WebApi.GetMultiplePlaceInfos(newPlaceIds)
|
||||
local imageTokens = {}
|
||||
for _, placeInfo in pairs(placesInfo) do
|
||||
games[placeInfo.placeId].url = placeInfo.url
|
||||
games[placeInfo.placeId].isPlayable = placeInfo.isPlayable
|
||||
table.insert(imageTokens, placeInfo.imageToken)
|
||||
end
|
||||
|
||||
store:dispatch(AddGamesInformation(games))
|
||||
|
||||
local thumbnails = WebApi.GetPlacesThumbnails(imageTokens, fetchedThumbnailSize, fetchedThumbnailSize)
|
||||
store:dispatch(SetGameThumbnails(thumbnails))
|
||||
end
|
||||
|
||||
store:dispatch(FetchedGamesBySort(gameSortName))
|
||||
store:dispatch(AddGamesBySort(gameSortName, placeIds))
|
||||
else
|
||||
store:dispatch(AddGamesBySort(gameSortName, nil))
|
||||
store:dispatch(FailedToFetchGamesBySort(gameSortName))
|
||||
warn("No " .. gameSortName .. " games found")
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function ShareGameToChatFromChatThunks.HasGameFetchRequestCompleted(sortName, shareGameToChatAsync)
|
||||
return shareGameToChatAsync.fetchedGamesBySort[sortName] or
|
||||
shareGameToChatAsync.failedToFetchGamesBySort[sortName]
|
||||
end
|
||||
|
||||
function ShareGameToChatFromChatThunks.Sharing(store)
|
||||
store:dispatch(SharingGameToChat())
|
||||
end
|
||||
|
||||
function ShareGameToChatFromChatThunks.Shared(store)
|
||||
store:dispatch(PopRoute())
|
||||
store:dispatch(SharedGameToChat())
|
||||
|
||||
store:dispatch(ResetShareGame())
|
||||
store:dispatch(ClearAllGamesInSorts())
|
||||
store:dispatch(ResetShareGameToChatAsync())
|
||||
end
|
||||
|
||||
function ShareGameToChatFromChatThunks.FailedToShare(store)
|
||||
local messageKey = "Feature.Chat.ShareGameToChat.FailedToShareTheGame"
|
||||
local toastModel = ToastModel.new(Constants.ToastIDs.GAME_NOT_SHAREABLE, messageKey)
|
||||
|
||||
store:dispatch(ShowToast(toastModel))
|
||||
store:dispatch(FailedToShareGameToChat())
|
||||
end
|
||||
|
||||
return ShareGameToChatFromChatThunks
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function()
|
||||
return {}
|
||||
end)
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function()
|
||||
return {}
|
||||
end)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
local Common = Modules.Common
|
||||
local Action = require(Common.Action)
|
||||
|
||||
return Action(script.Name, function(gameSorts)
|
||||
return {
|
||||
gameSorts = gameSorts,
|
||||
}
|
||||
end)
|
||||
Reference in New Issue
Block a user