| // Copyright (C) 2018 The Android Open Source Project | 
 | // | 
 | // Licensed under the Apache License, Version 2.0 (the "License"); | 
 | // you may not use this file except in compliance with the License. | 
 | // You may obtain a copy of the License at | 
 | // | 
 | //      http://www.apache.org/licenses/LICENSE-2.0 | 
 | // | 
 | // Unless required by applicable law or agreed to in writing, software | 
 | // distributed under the License is distributed on an "AS IS" BASIS, | 
 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 | // See the License for the specific language governing permissions and | 
 | // limitations under the License. | 
 |  | 
 | import m from 'mithril'; | 
 |  | 
 | import {channelChanged, getNextChannel, setChannel} from '../common/channels'; | 
 |  | 
 | import {globals} from './globals'; | 
 | import {createPage} from './pages'; | 
 |  | 
 |  | 
 | export const HomePage = createPage({ | 
 |   view() { | 
 |     return m( | 
 |         '.page.home-page', | 
 |         m( | 
 |             '.home-page-center', | 
 |             m('.home-page-title', 'Perfetto'), | 
 |             m(`img.logo[src=${globals.root}assets/logo-3d.png]`), | 
 |             m( | 
 |                 'div.channel-select', | 
 |                 m('div', | 
 |                   'Feeling adventurous? Try our bleeding edge Canary version'), | 
 |                 m( | 
 |                     'fieldset', | 
 |                     mkChan('stable'), | 
 |                     mkChan('canary'), | 
 |                     m('.highlight'), | 
 |                     ), | 
 |                 m(`.home-page-reload${channelChanged() ? '.show' : ''}`, | 
 |                   'You need to reload the page for the changes to have effect'), | 
 |                 ), | 
 |             ), | 
 |         m('a.privacy', | 
 |           {href: 'https://policies.google.com/privacy', target: '_blank'}, | 
 |           'Privacy policy')); | 
 |   }, | 
 | }); | 
 |  | 
 | function mkChan(chan: string) { | 
 |   const checked = getNextChannel() === chan ? '[checked=true]' : ''; | 
 |   return [ | 
 |     m(`input[type=radio][name=chan][id=chan_${chan}]${checked}`, { | 
 |       onchange: () => { | 
 |         setChannel(chan); | 
 |       }, | 
 |     }), | 
 |     m(`label[for=chan_${chan}]`, chan), | 
 |   ]; | 
 | } |