Код Middle Push-уведомления обновлено

Маршрут по данным уведомления

Условие

Напишите routeFromPush(data, isLoggedIn), которая по данным уведомления возвращает, куда перейти:

  • {type:"order", id} -> { "screen": "Order", "params": { "id": id } };
  • {type:"chat", chatId} -> { "screen": "Chat", "params": { "chatId": chatId } };
  • {type:"promo"} -> { "screen": "Promo", "params": {} } (доступен без входа);
  • для order и chat без входа вернуть { "screen": "Login", "params": { "next": <маршрут, который был бы без проверки> } };
  • неизвестный тип, отсутствующий или пустой идентификатор (не непустая строка): { "screen": "Home", "params": {} }.

Примеры

routeFromPush({"type":"order","id":"42"}, true) // {"screen":"Order","params":{"id":"42"}}
routeFromPush({"type":"chat","chatId":"c1"}, true) // {"screen":"Chat","params":{"chatId":"c1"}}
routeFromPush({"type":"promo"}, false) // {"screen":"Promo","params":{}}

Как подойти

Подсказки: 2
  1. Сначала постройте целевой маршрут, потом проверьте вход.
  2. Проверка идентификатора: typeof v === 'string' && v.length > 0.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.