import { Button } from '@mui/material';
import { useSnackbar } from 'notistack';
import { useNavigate } from 'react-router-dom';
-import { mediaService } from '../services';
-import { formatDate } from '../utils';
+import { MediaService } from '../services';
+import { getFormattedDate } from '../utils';
const MediaTable = () => {
const { enqueueSnackbar } = useSnackbar();
React.useEffect(() => {
const fetchMedia = async () => {
try {
- const response = await mediaService.getMedia();
+ const response = await MediaService.getMedia();
setMediaItems(response.data);
} catch (error) {
enqueueSnackbar(`Error fetching media: ${error.message}`, { variant: 'error' });
accessorKey: 'created_at',
header: 'Created At',
size: 150,
- Cell: ({ cell }) => formatDate(cell.getValue()),
+ Cell: ({ cell }) => getFormattedDate(cell.getValue()),
},
], []);
import { TextField, Button } from '@mui/material';
import { useSnackbar } from 'notistack';
import { useNavigate } from 'react-router-dom';
-import { messageService } from '../services';
+import { MessageService } from '../services';
const schema = yup.object({
recipient_id: yup.number().nullable().when('group_id', {
const onSubmit = async (data) => {
try {
- await messageService.createMessage(data);
+ await MessageService.createMessage(data);
enqueueSnackbar('Message created successfully', { variant: 'success' });
navigate('/messages');
} catch (error) {
import { Button } from '@mui/material';
import { useSnackbar } from 'notistack';
import { useParams, useNavigate } from 'react-router-dom';
-import { messageGroupMembersService } from '../services';
+import { MessageGroupMembersService } from '../services';
const MessageGroupMembersTable = () => {
const { group_id } = useParams();
React.useEffect(() => {
const fetchMembers = async () => {
try {
- const response = await messageGroupMembersService.getMembersByGroupId(group_id);
+ const response = await MessageGroupMembersService.getMembersByGroupId(group_id);
setMembers(response.data);
} catch (error) {
enqueueSnackbar(`Error fetching group members: ${error.message}`, { variant: 'error' });
// Remove member
const handleRemoveMember = async (user_id) => {
try {
- await messageGroupMembersService.removeMember({ user_id, group_id });
+ await MessageGroupMembersService.removeMember({ user_id, group_id });
setMembers(members.filter(member => member.user_id !== user_id));
enqueueSnackbar('Member removed successfully', { variant: 'success' });
} catch (error) {
import { MarkEmailRead } from '@mui/icons-material';
import { useSnackbar } from 'notistack';
import { useNavigate } from 'react-router-dom';
-import { messageService } from '../services';
-import { formatDate } from '../utils';
+import { MessageService } from '../services';
+import { getFormattedDate } from '../utils';
const MessagesTable = ({ groupId, recipientId }) => {
const { enqueueSnackbar } = useSnackbar();
try {
let response;
if (groupId) {
- response = await messageService.getMessagesByGroupId(groupId);
+ response = await MessageService.getMessagesByGroupId(groupId);
} else if (recipientId) {
- response = await messageService.getMessagesByRecipientId(recipientId);
+ response = await MessageService.getMessagesByRecipientId(recipientId);
} else {
- response = await messageService.getMessages();
+ response = await MessageService.getMessages();
}
setMessages(response.data);
} catch (error) {
// Mark message as read
const handleMarkAsRead = async (messageId) => {
try {
- const response = await messageService.markMessageAsRead(messageId);
+ const response = await MessageService.markMessageAsRead(messageId);
setMessages(messages.map(msg => msg.id === messageId ? response.data : msg));
enqueueSnackbar('Message marked as read', { variant: 'success' });
} catch (error) {
accessorKey: 'read_at',
header: 'Read At',
size: 150,
- Cell: ({ cell }) => formatDate(cell.getValue()),
+ Cell: ({ cell }) => getFormattedDate(cell.getValue()),
},
{
accessorKey: 'created_at',
header: 'Created At',
size: 150,
- Cell: ({ cell }) => formatDate(cell.getValue()),
+ Cell: ({ cell }) => getFormattedDate(cell.getValue()),
},
{
accessorKey: 'id',
import { Button } from '@mui/material';
import { useSnackbar } from 'notistack';
import { useNavigate } from 'react-router-dom';
-import { postService } from '../services';
-import { formatDate } from '../utils';
+import { PostService } from '../services';
+import { getFormattedDate } from '../utils';
const PostsTable = () => {
const { enqueueSnackbar } = useSnackbar();
React.useEffect(() => {
const fetchPosts = async () => {
try {
- const response = await postService.getPosts();
+ const response = await PostService.getPosts();
setPosts(response.data);
} catch (error) {
enqueueSnackbar(`Error fetching posts: ${error.message}`, { variant: 'error' });
accessorKey: 'created_at',
header: 'Created At',
size: 150,
- Cell: ({ cell }) => formatDate(cell.getValue()),
+ Cell: ({ cell }) => getFormattedDate(cell.getValue()),
},
], []);