add support for special links #369

Merged
akinwale merged 2 commits from special-uris into master 2018-12-01 23:56:34 +01:00
Showing only changes of commit e5dec34d86 - Show all commits

View file

@ -1,6 +1,26 @@
import { NavigationActions, StackActions } from 'react-navigation';
function getRouteForSpecialUri(uri) {
let targetRoute;
const page = uri.substring(8).trim(); // 'lbry://?'.length == 8
switch (page) {
case 'rewards': targetRoute = 'Rewards'; break;
case 'settings': targetRoute = 'Settings'; break;
case 'trending': targetRoute = 'TrendingStack'; break;
case 'wallet': targetRoute = 'WalletStack'; break;
default: targetRoute = 'DiscoverStack'; break;
}
neb-b commented 2018-11-30 17:17:55 +01:00 (Migrated from github.com)
Review

These should probably be constants.

These should probably be constants.
akinwale commented 2018-12-01 23:10:29 +01:00 (Migrated from github.com)
Review

Agreed!

Agreed!
return targetRoute;
}
export function dispatchNavigateToUri(dispatch, nav, uri) {
if (uri.startsWith('lbry://?')) {
dispatch(NavigationActions.navigate({ routeName: getRouteForSpecialUri(uri) }));
return;
}
const params = { uri };
if (nav && nav.routes && nav.routes.length > 0 && 'Main' === nav.routes[0].routeName) {
const mainRoute = nav.routes[0];
@ -48,6 +68,11 @@ export function navigateToUri(navigation, uri, additionalParams) {
return;
}
if (uri.startsWith('lbry://?')) {
navigation.navigate({ routeName: getRouteForSpecialUri(uri) });
return;
}
const params = Object.assign({ uri }, additionalParams);
if ('File' === navigation.state.routeName) {
const stackAction = StackActions.replace({ routeName: 'File', newKey: uri, params });
@ -57,3 +82,5 @@ export function navigateToUri(navigation, uri, additionalParams) {
navigation.navigate({ routeName: 'File', key: uri, params });
}