Skip to content

Instantly share code, notes, and snippets.

View isaacviannadev's full-sized avatar

Isaac Vianna isaacviannadev

View GitHub Profile
@isaacviannadev
isaacviannadev / solid-fe-material.md
Created February 6, 2026 12:33
SOLID FE MATERIALS

Materiais de Referência — SOLID no Frontend

Artigos

@isaacviannadev
isaacviannadev / solid-examples.tsx
Created February 5, 2026 13:25
SOLID on FE (React Examples)
// SRP - Princípio da Responsabilidade Única
// Errado: componente faz tudo
function UserProfile() {
const [user, setUser] = useState(null)
useEffect(() => { fetch('/api/user').then(r => r.json()).then(setUser) }, [])
if (!user) return <Spinner />
return <div>{user.name} - {formatDate(user.createdAt)}</div>
}
export const evaluationsMock: EvaluationType[] = [
{
id: '9b871ff2-81ef-431b-a406-e8ca14b7f84f',
date: '2024-05-17',
channel: 'WRT_PT_ONLINE',
grade: 0.8,
criterias: [
{
name: 'PROCESSED_ORDERS',
achieved: true,
@isaacviannadev
isaacviannadev / productList.js
Created June 7, 2024 17:39
Array de Produtos
const produtos = [
{ id: 1, nome: 'Laptop XYZ', preco: 194.68, categoria: 'Computadores' },
{ id: 2, nome: 'Mouse ABC', preco: 250.61, categoria: 'Acessórios' },
{ id: 3, nome: 'Teclado DEF', preco: 265.93, categoria: 'Acessórios' },
{ id: 4, nome: 'Monitor GHI', preco: 212.82, categoria: 'Monitores' },
{ id: 5, nome: 'Impressora JKL', preco: 227.54, categoria: 'Impressoras' },
{ id: 6, nome: 'Tablet MNO', preco: 70.05, categoria: 'Tablets' },
{ id: 7, nome: 'Smartphone PQR', preco: 192.8, categoria: 'Smartphones' },
{ id: 8, nome: 'Smartwatch STU', preco: 17.46, categoria: 'Wearables' },
{ id: 9, nome: 'Fone de Ouvido VWX', preco: 296.33, categoria: 'Acessórios' },
@isaacviannadev
isaacviannadev / settings.json
Created April 18, 2023 15:46
my settings to vscode ⚛️
{
"editor.suggestSelection": "first",
"workbench.iconTheme": "material-icon-theme",
"workbench.colorTheme": "Dracula",
"explorer.confirmDelete": false,
"git.enableSmartCommit": true,
"terminal.integrated.fontFamily": "monospace",
"editor.fontSize": 12,
"editor.fontLigatures": true,
"editor.codeActionsOnSave": {
function addProduct(id) {
let cart = JSON.parse(localStorage.getItem("products")) || [];
const foundItem = cart.find((product) => product.id === id);
if (foundItem) {
foundItem.quantidade++;
} else {
cart.push({ id: id, qtd: 1 });
}