Skip to content

Instantly share code, notes, and snippets.

View ozcanzaferayan's full-sized avatar
⚛️
Overreacting

Özcan Zafer AYAN ozcanzaferayan

⚛️
Overreacting
View GitHub Profile
import { selector } from "recoil";
import { todoListFilterState, todoListState } from "./atoms";
export const filteredTodoListState = selector({
key: "filteredTodoListState",
get: ({ get }) => {
const filter = get(todoListFilterState);
const list = get(todoListState);
switch (filter) {
import { atom } from "recoil";
export const todoListState = atom({
key: "todoListState",
default: [
{ name: "Apples", isCompleted: false },
{ name: "Eggs", isCompleted: false },
{ name: "Butter", isCompleted: false },
],
});
import React, { useState } from "react";
import { useRecoilState, atom, selector, useRecoilValue } from "recoil";
const todoListState = atom({
key: "todoListState",
default: [
{ name: "Apples", isCompleted: false },
{ name: "Eggs", isCompleted: false },
{ name: "Butter", isCompleted: false },
],
const filteredTodos = useRecoilValue(filteredTodoListState);
const filteredTodoListState = selector({
key: 'filteredTodoListState',
get: ({get}) => {
const filter = get(todoListFilterState);
const list = get(todoListState);
switch (filter) {
case 'completed':
return list.filter((item) => item.isCompleted);
case 'uncompleted':
<select value={filter} onChange={(e) => setFilter(e.target.value)}>
<option value="all">All</option>
<option value="completed">Completed</option>
<option value="uncompleted">Uncompleted</option>
</select>
const [filter, setFilter] = useRecoilState(todoListFilterState);
const todoListFilterState = atom({
key: 'todoListFilterState',
default: 'Hepsini göster',
});
import React, { useState } from "react";
import { useRecoilState, atom } from "recoil";
const todoListState = atom({
key: "todoListState",
default: [
{ name: "Apples", isCompleted: false },
{ name: "Eggs", isCompleted: false },
{ name: "Butter", isCompleted: false },
],
const completeAt = (index) => {
const todos = [...todoList];
const todo = todos[index];
todos[index] = { name: todo.name, isCompleted: !todo.isCompleted };
setTodoList(todos);
};