client: use switch instead of if/else chain

This commit is contained in:
Johann150 2023-03-27 17:36:52 +02:00
parent 6722ccfc64
commit e4932085a7
Signed by untrusted user: Johann150
GPG key ID: 9EE6577A2A06F8F1

View file

@ -10,7 +10,7 @@ import * as sound from '@/scripts/sound';
import { $i } from '@/account';
const props = defineProps<{
src: string;
src: 'antenna' | 'home' | 'local' | 'social' | 'global' | 'mentions' | 'directs' | 'list' | 'channel';
list?: string;
antenna?: string;
channel?: string;
@ -55,71 +55,80 @@ let query;
let connection;
let connection2;
if (props.src === 'antenna') {
endpoint = 'antennas/notes';
query = {
antennaId: props.antenna,
};
connection = stream.useChannel('antenna', {
antennaId: props.antenna,
});
connection.on('note', prepend);
} else if (props.src === 'home') {
endpoint = 'notes/timeline';
connection = stream.useChannel('homeTimeline');
connection.on('note', prepend);
switch (props.src) {
case 'antenna':
endpoint = 'antennas/notes';
query = {
antennaId: props.antenna,
};
connection = stream.useChannel('antenna', {
antennaId: props.antenna,
});
connection.on('note', prepend);
break;
case 'home':
endpoint = 'notes/timeline';
connection = stream.useChannel('homeTimeline');
connection.on('note', prepend);
connection2 = stream.useChannel('main');
connection2.on('follow', onChangeFollowing);
connection2.on('unfollow', onChangeFollowing);
} else if (props.src === 'local') {
endpoint = 'notes/local-timeline';
connection = stream.useChannel('localTimeline');
connection.on('note', prepend);
} else if (props.src === 'social') {
endpoint = 'notes/hybrid-timeline';
connection = stream.useChannel('hybridTimeline');
connection.on('note', prepend);
} else if (props.src === 'global') {
endpoint = 'notes/global-timeline';
connection = stream.useChannel('globalTimeline');
connection.on('note', prepend);
} else if (props.src === 'mentions') {
endpoint = 'notes/mentions';
connection = stream.useChannel('main');
connection.on('mention', prepend);
} else if (props.src === 'directs') {
endpoint = 'notes/mentions';
query = {
visibility: 'specified',
};
const onNote = note => {
if (note.visibility === 'specified') {
prepend(note);
}
};
connection = stream.useChannel('main');
connection.on('mention', onNote);
} else if (props.src === 'list') {
endpoint = 'notes/user-list-timeline';
query = {
listId: props.list,
};
connection = stream.useChannel('userList', {
listId: props.list,
});
connection.on('note', prepend);
connection.on('userAdded', onUserAdded);
connection.on('userRemoved', onUserRemoved);
} else if (props.src === 'channel') {
endpoint = 'channels/timeline';
query = {
channelId: props.channel,
};
connection = stream.useChannel('channel', {
channelId: props.channel,
});
connection.on('note', prepend);
connection2 = stream.useChannel('main');
connection2.on('follow', onChangeFollowing);
connection2.on('unfollow', onChangeFollowing);
break;
case 'local':
endpoint = 'notes/local-timeline';
connection = stream.useChannel('localTimeline');
connection.on('note', prepend);
break;
case 'social':
endpoint = 'notes/hybrid-timeline';
connection = stream.useChannel('hybridTimeline');
connection.on('note', prepend);
break;
case 'global':
endpoint = 'notes/global-timeline';
connection = stream.useChannel('globalTimeline');
connection.on('note', prepend);
break;
case 'mentions':
endpoint = 'notes/mentions';
connection = stream.useChannel('main');
connection.on('mention', prepend);
break;
case 'directs':
endpoint = 'notes/mentions';
query = {
visibility: 'specified',
};
connection = stream.useChannel('main');
connection.on('mention', note => {
if (note.visibility === 'specified') {
prepend(note);
}
});
break;
case 'list':
endpoint = 'notes/user-list-timeline';
query = {
listId: props.list,
};
connection = stream.useChannel('userList', {
listId: props.list,
});
connection.on('note', prepend);
connection.on('userAdded', onUserAdded);
connection.on('userRemoved', onUserRemoved);
break;
case 'channel':
endpoint = 'channels/timeline';
query = {
channelId: props.channel,
};
connection = stream.useChannel('channel', {
channelId: props.channel,
});
connection.on('note', prepend);
break;
}
const pagination = {