Adding and updating Servers, fixes #524
This commit is contained in:
@ -63,6 +63,15 @@ const localstorageMiddleware = (function () {
|
||||
);
|
||||
break;
|
||||
|
||||
case 'MOPIDY_UPDATE_SERVERS':
|
||||
storage.set(
|
||||
'mopidy',
|
||||
{
|
||||
servers: action.servers,
|
||||
},
|
||||
);
|
||||
break;
|
||||
|
||||
case 'SPOTIFY_AUTHORIZATION_GRANTED':
|
||||
if (action.authorization !== undefined) {
|
||||
var { authorization } = action;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
|
||||
import { createRange } from '../../util/arrays';
|
||||
import { generateGuid } from '../../util/helpers';
|
||||
|
||||
export function set(data) {
|
||||
return {
|
||||
@ -15,6 +16,39 @@ export function updateServer(server) {
|
||||
};
|
||||
}
|
||||
|
||||
export function updateServers(servers) {
|
||||
return {
|
||||
type: 'MOPIDY_UPDATE_SERVERS',
|
||||
servers,
|
||||
};
|
||||
}
|
||||
|
||||
export function addServer() {
|
||||
return {
|
||||
type: 'MOPIDY_UPDATE_SERVER',
|
||||
server: {
|
||||
id: generateGuid(),
|
||||
name: 'New server',
|
||||
host: window.location.hostname,
|
||||
port: (window.location.port ? window.location.port : (window.location.protocol === 'https:' ? '443' : '80')),
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function setCurrentServer(server) {
|
||||
return {
|
||||
type: 'MOPIDY_SET_CURRENT_SERVER',
|
||||
server,
|
||||
};
|
||||
}
|
||||
|
||||
export function removeServer(id) {
|
||||
return {
|
||||
type: 'MOPIDY_REMOVE_SERVER',
|
||||
id,
|
||||
};
|
||||
}
|
||||
|
||||
export function setConnection(data) {
|
||||
return {
|
||||
type: 'MOPIDY_SET_CONNECTION',
|
||||
|
||||
@ -284,10 +284,20 @@ const MopidyMiddleware = (function () {
|
||||
});
|
||||
break;
|
||||
|
||||
case 'MOPIDY_SET_CONNECTION':
|
||||
store.dispatch(mopidyActions.set(action.data));
|
||||
case 'MOPIDY_UPDATE_SERVER':
|
||||
let servers = store.getState().mopidy.servers;
|
||||
servers[action.server.id] = { ...servers[action.server.id], ...action.server };
|
||||
store.dispatch(mopidyActions.updateServers(servers));
|
||||
break;
|
||||
|
||||
// Wait 250 ms and then retry connection
|
||||
case 'MOPIDY_SET_CURRENT_SERVER':
|
||||
store.dispatch(mopidyActions.set({
|
||||
current_server: action.server.id,
|
||||
host: action.server.host,
|
||||
port: action.server.port
|
||||
}));
|
||||
|
||||
// Wait a moment for store to update, then attempt connection
|
||||
setTimeout(
|
||||
() => {
|
||||
store.dispatch(mopidyActions.connect());
|
||||
@ -297,6 +307,12 @@ const MopidyMiddleware = (function () {
|
||||
);
|
||||
break;
|
||||
|
||||
case 'MOPIDY_REMOVE_SERVER':
|
||||
let remaining_servers = store.getState().mopidy.servers;
|
||||
delete remaining_servers[action.id];
|
||||
store.dispatch(mopidyActions.updateServers(remaining_servers));
|
||||
break;
|
||||
|
||||
case 'SET_WINDOW_FOCUS':
|
||||
|
||||
// Focus has just been regained
|
||||
|
||||
@ -6,17 +6,15 @@ export default function reducer(mopidy = {}, action) {
|
||||
case 'MOPIDY_SET':
|
||||
return { ...mopidy, ...action.data };
|
||||
|
||||
case 'MOPIDY_UPDATE_SERVER':
|
||||
const updated = {};
|
||||
updated[action.server.id] = { ...mopidy.servers[action.server.id], ...action.server };
|
||||
return { ...mopidy, servers: { ...mopidy.servers, ...updated } };
|
||||
case 'MOPIDY_UPDATE_SERVERS':
|
||||
return { ...mopidy, servers: action.servers };
|
||||
|
||||
case 'MOPIDY_CONNECT':
|
||||
case 'MOPIDY_CONNECTING':
|
||||
return {
|
||||
...mopidy,
|
||||
connected: false,
|
||||
connecting: true,
|
||||
connecting: true,
|
||||
};
|
||||
|
||||
case 'MOPIDY_CONNECTED':
|
||||
|
||||
Reference in New Issue
Block a user