mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-01-11 22:40:31 +00:00
81 lines
2.8 KiB
JavaScript
81 lines
2.8 KiB
JavaScript
// Copyright (C) 2017-2023 Smart code 203358507
|
|
|
|
const React = require('react');
|
|
const { useServices } = require('stremio/services');
|
|
const { useToast } = require('stremio/common');
|
|
|
|
const ServicesToaster = () => {
|
|
const { core, dragAndDrop } = useServices();
|
|
const toast = useToast();
|
|
React.useEffect(() => {
|
|
const onCoreEvent = ({ event, args }) => {
|
|
switch (event) {
|
|
case 'Error': {
|
|
if (args.source.event === 'UserPulledFromAPI' && args.source.args.uid === null) {
|
|
break;
|
|
}
|
|
|
|
if (args.source.event === 'LibrarySyncWithAPIPlanned' && args.source.args.uid === null) {
|
|
break;
|
|
}
|
|
|
|
if (args.error.type === 'Other' && args.error.code === 3 && args.source.event === 'AddonInstalled' && args.source.args.transport_url.startsWith('https://www.strem.io/trakt/addon')) {
|
|
break;
|
|
}
|
|
|
|
toast.show({
|
|
type: 'error',
|
|
title: args.source.event,
|
|
message: args.error.message,
|
|
timeout: 4000,
|
|
dataset: {
|
|
type: 'CoreEvent'
|
|
}
|
|
});
|
|
break;
|
|
}
|
|
case 'TorrentParsed': {
|
|
toast.show({
|
|
type: 'success',
|
|
title: 'Torrent file parsed',
|
|
timeout: 4000
|
|
});
|
|
break;
|
|
}
|
|
case 'MagnetParsed': {
|
|
toast.show({
|
|
type: 'success',
|
|
title: 'Magnet link parsed',
|
|
timeout: 4000
|
|
});
|
|
break;
|
|
}
|
|
case 'PlayingOnDevice': {
|
|
toast.show({
|
|
type: 'success',
|
|
title: `Stream opened in ${args.device}`,
|
|
timeout: 4000
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
const onDragAndDropError = (error) => {
|
|
toast.show({
|
|
type: 'error',
|
|
title: error.message,
|
|
message: error.file?.name,
|
|
timeout: 4000
|
|
});
|
|
};
|
|
core.transport.on('CoreEvent', onCoreEvent);
|
|
dragAndDrop.on('error', onDragAndDropError);
|
|
return () => {
|
|
core.transport.off('CoreEvent', onCoreEvent);
|
|
dragAndDrop.off('error', onDragAndDropError);
|
|
};
|
|
}, []);
|
|
return null;
|
|
};
|
|
|
|
module.exports = ServicesToaster;
|