Convert useModified into a real hook.

This commit is contained in:
Mike Cao 2024-02-07 23:48:51 -08:00
parent a426c242cb
commit 91e3dff7f5
24 changed files with 63 additions and 48 deletions

View file

@ -8,14 +8,14 @@ import {
Button,
SubmitButton,
} from 'react-basics';
import { useApi, useMessages } from 'components/hooks';
import { touch } from 'store/modified';
import { useApi, useMessages, useModified } from 'components/hooks';
export function TeamJoinForm({ onSave, onClose }: { onSave: () => void; onClose: () => void }) {
const { formatMessage, labels, getMessage } = useMessages();
const { post, useMutation } = useApi();
const { mutate, error } = useMutation({ mutationFn: (data: any) => post('/teams/join', data) });
const ref = useRef(null);
const { touch } = useModified();
const handleSubmit = async (data: any) => {
mutate(data, {

View file

@ -1,7 +1,6 @@
import { useLocale, useLogin, useMessages } from 'components/hooks';
import { useLocale, useLogin, useMessages, useModified } from 'components/hooks';
import { useRouter } from 'next/navigation';
import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics';
import { touch } from 'store/modified';
import TeamDeleteForm from './TeamLeaveForm';
export function TeamLeaveButton({ teamId, teamName }: { teamId: string; teamName: string }) {
@ -9,6 +8,7 @@ export function TeamLeaveButton({ teamId, teamName }: { teamId: string; teamName
const router = useRouter();
const { dir } = useLocale();
const { user } = useLogin();
const { touch } = useModified();
const handleLeave = async () => {
touch('teams');

View file

@ -1,5 +1,4 @@
import { useApi, useMessages } from 'components/hooks';
import { touch } from 'store/modified';
import { useApi, useMessages, useModified } from 'components/hooks';
import ConfirmationForm from 'components/common/ConfirmationForm';
export function TeamLeaveForm({
@ -20,6 +19,7 @@ export function TeamLeaveForm({
const { mutate, error, isPending } = useMutation({
mutationFn: () => del(`/teams/${teamId}/users/${userId}`),
});
const { touch } = useModified();
const handleConfirm = async () => {
mutate(null, {

View file

@ -1,13 +1,13 @@
import { Button, Icon, Modal, ModalTrigger, Text, useToasts } from 'react-basics';
import Icons from 'components/icons';
import { useMessages } from 'components/hooks';
import { useMessages, useModified } from 'components/hooks';
import TeamAddForm from './TeamAddForm';
import { messages } from 'components/messages';
import { touch } from 'store/modified';
export function TeamsAddButton({ onSave }: { onSave?: () => void }) {
const { formatMessage, labels } = useMessages();
const { showToast } = useToasts();
const { touch } = useModified();
const handleSave = async () => {
showToast({ message: formatMessage(messages.saved), variant: 'success' });

View file

@ -1,12 +1,12 @@
import { Button, Icon, Modal, ModalTrigger, Text, useToasts } from 'react-basics';
import Icons from 'components/icons';
import { useMessages } from 'components/hooks';
import { useMessages, useModified } from 'components/hooks';
import TeamJoinForm from './TeamJoinForm';
import { touch } from 'store/modified';
export function TeamsJoinButton() {
const { formatMessage, labels, messages } = useMessages();
const { showToast } = useToasts();
const { touch } = useModified();
const handleJoin = () => {
showToast({ message: formatMessage(messages.saved), variant: 'success' });

View file

@ -1,6 +1,5 @@
import { useApi, useMessages } from 'components/hooks';
import { useApi, useMessages, useModified } from 'components/hooks';
import { Icon, Icons, LoadingButton, Text } from 'react-basics';
import { touch } from 'store/modified';
export function TeamMemberRemoveButton({
teamId,
@ -18,6 +17,7 @@ export function TeamMemberRemoveButton({
const { mutate, isPending } = useMutation({
mutationFn: () => del(`/teams/${teamId}/users/${userId}`),
});
const { touch } = useModified();
const handleRemoveTeamMember = () => {
mutate(null, {

View file

@ -1,12 +1,12 @@
import { useMessages } from 'components/hooks';
import { useMessages, useModified } from 'components/hooks';
import { useRouter } from 'next/navigation';
import { ActionForm, Button, Modal, ModalTrigger } from 'react-basics';
import TeamDeleteForm from './TeamDeleteForm';
import { touch } from 'store/modified';
export function TeamAdmin({ teamId }: { teamId: string }) {
const { formatMessage, labels, messages } = useMessages();
const router = useRouter();
const { touch } = useModified();
const handleLeave = async () => {
touch('teams');