const User = ({ firebase }) => {
const [authUser, setAuthUser] = useEffect(null);
useEffect(() => {}, [
// код который в componentDidMount
firebase.auth.onAuthStateChanged(authUser => {
setAuthUser(authUser);
});
return () => { // код который в componentWillUnmount
// хз зачем тебе обращаться еще раз к API, можешь даже не писать этот return, но если надо, то делай необходимые вещи перед уничтожением компонента
setAuthUser(null);
};
], []); // если массив пустой, то хук сработает один раз при монтировании компонента. Если массив не передавать, хук сработает при каждом рендере кмпонента. Если передать аргументы, то сработает при их изменении.
};
тип через лет 5 поставить вторую видеокарту и накопитель
Из видеокарты, то скорее всего GTX 2070 super
// instantiate a loader
var loader = new THREE.TextureLoader();
// load a resource
loader.load(
// resource URL
'textures/land_ocean_ice_cloud_2048.jpg',
// onLoad callback
function ( texture ) {
// in this example we create the material when the texture is loaded
var material = new THREE.MeshBasicMaterial( {
map: texture
} );
},
// onProgress callback currently not supported
undefined,
// onError callback
function ( err ) {
console.error( 'An error happened.' );
}
);
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0, img.width, img.height);
};
<?php
$today = strtotime(date("d-m-Y 00:00:00", time()));
$days = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"];
$timeForHumans = function (int $time) use ($today, $days): string {
$diff = $today - $time;
$day = 86400;
if ($diff < 0 && $diff >= -$day) {
return "Сегодня";
}
elseif ($diff > 0 && $diff <= $day) {
return "Вчера";
}
elseif ($diff > $day && $diff < $day * 6) {
return $days[date("w", $time)];
}
return date("d.m.Y", $time);
};
for ($i = 0; $i < 10; $i++) {
echo $timeForHumans(time() - (86400 * $i)) . PHP_EOL;
}