Skip to content

Instantly share code, notes, and snippets.

@dileno
dileno / RandomUser.js
Created October 19, 2019 18:10
RandomUser.js React Hooks sample
import React, { useState, useEffect } from 'react';
export default function RandomUser() {
const [user, setUser] = useState([]);
const [error, setError] = useState([]);
const [isLoading, setIsLoading] = useState(true);
async function fetchRandomUser() {
try {
await fetch('https://randomuser.me/api/')
@dileno
dileno / RandomUser.js
Created October 19, 2019 18:09
useEffect
useEffect(() => {
fetchRandomUser();
}, []);
@dileno
dileno / App.js
Created September 20, 2019 09:09
RandomUser React App
import React from 'react';
import RandomUser from './RandomUser';
import './App.css';
function App() {
return (
<div className="App">
<header className="App-header">
<RandomUser />
@dileno
dileno / RandomUser.js
Last active September 20, 2019 10:07
RandomUser component
import React, {Component} from 'react';
class RandomUser extends Component {
constructor() {
super();
this.state = {
user: [],
isLoading: false,
error: null
}
@dileno
dileno / blog-post-add-edit.component.html
Created September 14, 2019 19:19
Blog-post-add-edit.component
<h1>{{actionType}} blog post</h1>
<form [formGroup]="form" (ngSubmit)="save()" #formDir="ngForm" novalidate>
<div class="form-group row">
<label class=" control-label col-md-12">Title</label>
<div class="col-md-12">
<input class="form-control" type="text" formControlName="title">
</div>
<span class="text-danger ml-3" *ngIf="title.invalid && formDir.submitted">
Title is required.
</span>
@dileno
dileno / blog-post-add-edit.component.ts
Created September 14, 2019 19:09
Blog-post-add-edit.component
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router, ActivatedRoute } from '@angular/router';
import { BlogPostService } from '../services/blog-post.service';
import { BlogPost } from '../models/blogpost';
@Component({
selector: 'app-blog-post-add-edit',
templateUrl: './blog-post-add-edit.component.html',
styleUrls: ['./blog-post-add-edit.component.scss']
@dileno
dileno / blog-post.component.html
Created September 14, 2019 18:39
Blog-post.component
<ng-container *ngIf="(blogPost$ | async) as blogPost; else loading">
<h1>{{ blogPost.title }}</h1>
<div>{{ blogPost.body }}</div>
<ul>
<li>{{ blogPost.creator }}</li>
<li>{{ blogPost.dt }}</li>
</ul>
</ng-container>
@dileno
dileno / blog-post.component.ts
Created September 14, 2019 18:33
Blog-post.component
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs';
import { BlogPostService } from '../services/blog-post.service';
import { BlogPost } from '../models/blogpost';
@Component({
selector: 'app-blog-post',
templateUrl: './blog-post.component.html',
styleUrls: ['./blog-post.component.scss']
@dileno
dileno / blog-posts.component.html
Last active September 14, 2019 19:24
Blog-posts.component
<h1>Blog posts</h1>
<p *ngIf="!(blogPosts$ | async)"><em>Loading...</em></p>
<p>
<a [routerLink]="['/add']" class="btn btn-primary float-right mb-3">New post</a>
</p>
<table class="table table-sm table-hover" *ngIf="(blogPosts$ | async)?.length>0">
<thead>
<tr>
@dileno
dileno / blog-posts.component.ts
Last active September 14, 2019 17:44
BlogPostsComponent
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { BlogPostService } from '../services/blog-post.service';
import { BlogPost } from '../models/blogpost';
@Component({
selector: 'app-blog-posts',
templateUrl: './blog-posts.component.html',
styleUrls: ['./blog-posts.component.scss']
})