- строка поиска с кнопкой submit
- список из 10 роликов
- Элемент списка содержит миниатюру и название клипа
При клике на ролик открывается страница и воспроизводится клип
url браузера синхронизирован со строкой поиска
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Demo</title> | |
</head> | |
<body> | |
<div id="root"></div> | |
<button id="add">add</button> | |
<script> |
const browsers = { | |
browser : [[ | |
// Presto based | |
/(opera\smini)\/([\w\.-]+)/i, // Opera Mini | |
/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, // Opera Mobi/Tablet | |
/(opera).+version\/([\w\.]+)/i, // Opera > 9.80 | |
/(opera)[\/\s]+([\w\.]+)/i // Opera < 9.80 | |
], [NAME, VERSION], [ |
'use strict'; | |
/* | |
* Задача: пользователь приходит в нелегальный магазин минералов, указывает сколько у него есть денег. | |
* Вводит сколько он хочет купить минералов. После этого если количество запрошенных товаров соотвествует скидке, | |
* ему предоставляется скидка: три по цене двух, если количество товара кратно трём или 10%, если количество больше пяти. | |
* К сумме товара добавляется НДС, в зависимости от указанного штата. | |
* После совершения покупки, предложить пользователю посетить магазин еще раз | |
* */ |
// List.js | |
List = ({ list }) => ( | |
<ul> | |
{list.map(listItem => | |
<li key={listItem.id}> | |
<ListItem listItem={listItem} /> | |
</li> | |
} | |
</ul> | |
); |
sv_cheats 1 | |
sv_infinite_ammo 1 | |
mp_do_warmup_offline 1 | |
mp_warmuptime 99999 | |
mp_buytime 99999 | |
mp_buy_anywhere 1 | |
sv_grenade_trajectory 1 | |
bind v noclip |
const ListItem = ({item}) => ( | |
<div> | |
<p>{item.foo}</p> | |
<p>{item.bar}</p> | |
</div> | |
) | |
ListItem.propTypes = { | |
item: T.shape({ | |
foo: T.string.isRequired, | |
bar: T.string.isRequired |
class RouterLevel { | |
constructor(OrchestratorLevel) { | |
this.OrchestratorLevel = OrchestratorLevel; | |
} | |
handle(input) { | |
try { | |
return this.OrchestratorLevel.handle(input); | |
} catch (err) { |
// *.d.ts | |
interface Topology { | |
options?: object; | |
} | |
interface Exchange extends Topology { | |
exchange: string; | |
type: string; | |
bindings: Binding[]; | |
} |
======