From 80d8fe99d6c4aa3aa50505bbe2446a2811f65267 Mon Sep 17 00:00:00 2001 From: Nejc Date: Thu, 8 Feb 2024 15:00:55 +0100 Subject: [PATCH] fix: socket params is not a function --- package.json | 2 +- src/middlewares/phoenix/actions/socket/index.js | 11 +++++++---- src/middlewares/phoenix/phoenixChannelMiddleware.js | 6 +++--- src/reducers/phoenixReducer.js | 7 +++---- src/services/socket.js | 3 +++ 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index d99871e..8f333bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@trixtateam/phoenix-to-redux", - "version": "1.2.1", + "version": "1.2.2-beta.1", "publishConfig": { "access": "public" }, diff --git a/src/middlewares/phoenix/actions/socket/index.js b/src/middlewares/phoenix/actions/socket/index.js index 407ff3c..91e5900 100644 --- a/src/middlewares/phoenix/actions/socket/index.js +++ b/src/middlewares/phoenix/actions/socket/index.js @@ -1,4 +1,5 @@ import { socketActionTypes } from '../../../../constants'; +import { getSocketParams } from '../../../../services/socket'; /** Should an error occur from the phoenix socket, this action will be dispatched * @param {Object} params - parameters @@ -25,7 +26,7 @@ export function phoenixSocketError({ error, socketState, domainKey }) { export function openPhoenixSocket({ socket, domainKey }) { return { type: socketActionTypes.SOCKET_OPEN, - params: socket.params(), + params: getSocketParams(socket), socket, domainKey, }; @@ -37,12 +38,14 @@ export function openPhoenixSocket({ socket, domainKey }) { * @param {Object} params - parameters * @param {string} params.domainKey - domain for socket * @param {Object} params.socket = socket being opened - * @param {Object=} [params.options = {}] parameters.options - socket options + * @param {Object=} params.options = {} parameters.options - socket options */ + export function connectPhoenixSocket({ socket, domainKey, options }) { return { type: socketActionTypes.SOCKET_CONNECT, socket, + params: getSocketParams(socket), options, domainKey, }; @@ -58,7 +61,7 @@ export function connectPhoenixSocket({ socket, domainKey, options }) { export function closePhoenixSocket({ domainKey, socket }) { return { type: socketActionTypes.SOCKET_CLOSE, - params: socket.params(), + params: getSocketParams(socket), domainKey, socket, }; @@ -73,7 +76,7 @@ export function closePhoenixSocket({ domainKey, socket }) { export function disconnectPhoenixSocket({ domainKey, socket }) { return { type: socketActionTypes.SOCKET_DISCONNECT, - params: socket.params(), + params: getSocketParams(socket), domainKey, socket, }; diff --git a/src/middlewares/phoenix/phoenixChannelMiddleware.js b/src/middlewares/phoenix/phoenixChannelMiddleware.js index bb86ed3..29d17d9 100644 --- a/src/middlewares/phoenix/phoenixChannelMiddleware.js +++ b/src/middlewares/phoenix/phoenixChannelMiddleware.js @@ -202,7 +202,7 @@ export const createPhoenixChannelMiddleware = () => (store) => (next) => (action const currentState = getState(); let { socket } = socketService; const socketDetails = selectPhoenixSocketDetails(currentState); - const socketOptions = selectPhoenixSocketOptions(currentState); + const options = selectPhoenixSocketOptions(currentState); const phoenixDomain = selectPhoenixSocketDomain(currentState); const socketDomain = socket ? socket.endPoint : ''; const { channelTopic, domainUrl, events, channelToken, logPresence, additionalData } = @@ -218,7 +218,7 @@ export const createPhoenixChannelMiddleware = () => (store) => (next) => (action const connectionState = socket && socket.connectionState(); if (!socket || (connectionState === socketStatuses.CLOSED && socket.closeWasClean)) { - socket = socketService.initialize(domain, socketDetails, socketOptions); + socket = socketService.initialize(domain, socketDetails, options); if (socket) { socket.onError((error) => dispatch( @@ -232,7 +232,7 @@ export const createPhoenixChannelMiddleware = () => (store) => (next) => (action socket.onOpen(() => dispatch(openPhoenixSocket({ socket, domainKey }))); socket.onClose(() => dispatch(closePhoenixSocket({ socket, domainKey }))); socket.connect(); - dispatch(connectPhoenixSocket({ domainKey, socket, options: socketOptions })); + dispatch(connectPhoenixSocket({ domainKey, socket, options })); } } dispatch( diff --git a/src/reducers/phoenixReducer.js b/src/reducers/phoenixReducer.js index 4126950..edb9e26 100644 --- a/src/reducers/phoenixReducer.js +++ b/src/reducers/phoenixReducer.js @@ -5,7 +5,6 @@ */ import produce from 'immer'; import { channelActionTypes, socketActionTypes, socketStatuses } from '../constants'; -import { getDomainKeyFromUrl } from '../services/helpers'; export const initialState = { socket: false, @@ -51,9 +50,9 @@ export const phoenixReducer = (state = initialState, action) => case socketActionTypes.SOCKET_CONNECT: draft.socketStatus = socketStatuses.CONNECTING; draft.channels = {}; - draft.details = action.socket.params(); - draft.options = action.socket.options; - draft.domain = getDomainKeyFromUrl(action.socket.endPoint); + draft.details = action.params; + draft.options = action.options; + draft.domain = action.domainKey; draft.socket = action.socket; break; case socketActionTypes.SOCKET_DISCONNECT: diff --git a/src/services/socket.js b/src/services/socket.js index 6c9cf1f..44b26bc 100644 --- a/src/services/socket.js +++ b/src/services/socket.js @@ -2,6 +2,9 @@ // https://gist.github.com/reggi/923c6704104dd50395e5 import { Socket } from 'phoenix'; +export const getSocketParams = (s) => + s ? (typeof s.params === 'function' ? s.params() : s.params) : undefined; + export const socketService = { socket: undefined, domain: undefined,