feat: Add edit pages with cache
				
					
				
			This commit is contained in:
		@@ -2,7 +2,7 @@ import { DataGrid, GridColDef, GridRenderCellParams } from "@mui/x-data-grid";
 | 
			
		||||
import { countryStore, languageStore } from "@shared";
 | 
			
		||||
import { useEffect, useState } from "react";
 | 
			
		||||
import { observer } from "mobx-react-lite";
 | 
			
		||||
import { Eye, Trash2 } from "lucide-react";
 | 
			
		||||
import { Eye, Pencil, Trash2 } from "lucide-react";
 | 
			
		||||
import { useNavigate } from "react-router-dom";
 | 
			
		||||
import { CreateButton, DeleteModal, LanguageSwitcher } from "@widgets";
 | 
			
		||||
 | 
			
		||||
@@ -14,7 +14,7 @@ export const CountryListPage = observer(() => {
 | 
			
		||||
  const { language } = languageStore;
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    getCountries();
 | 
			
		||||
    getCountries(language);
 | 
			
		||||
  }, [language]);
 | 
			
		||||
 | 
			
		||||
  const columns: GridColDef[] = [
 | 
			
		||||
@@ -28,10 +28,15 @@ export const CountryListPage = observer(() => {
 | 
			
		||||
      headerName: "Действия",
 | 
			
		||||
      align: "center",
 | 
			
		||||
      headerAlign: "center",
 | 
			
		||||
 | 
			
		||||
      width: 200,
 | 
			
		||||
      renderCell: (params: GridRenderCellParams) => {
 | 
			
		||||
        return (
 | 
			
		||||
          <div className="flex h-full gap-7 justify-center items-center">
 | 
			
		||||
            <button
 | 
			
		||||
              onClick={() => navigate(`/country/${params.row.code}/edit`)}
 | 
			
		||||
            >
 | 
			
		||||
              <Pencil size={20} className="text-blue-500" />
 | 
			
		||||
            </button>
 | 
			
		||||
            <button onClick={() => navigate(`/country/${params.row.code}`)}>
 | 
			
		||||
              <Eye size={20} className="text-green-500" />
 | 
			
		||||
            </button>
 | 
			
		||||
@@ -49,7 +54,7 @@ export const CountryListPage = observer(() => {
 | 
			
		||||
    },
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  const rows = countries.map((country) => ({
 | 
			
		||||
  const rows = countries[language]?.map((country) => ({
 | 
			
		||||
    id: country.code,
 | 
			
		||||
    code: country.code,
 | 
			
		||||
    name: country.name,
 | 
			
		||||
@@ -66,12 +71,14 @@ export const CountryListPage = observer(() => {
 | 
			
		||||
        </div>
 | 
			
		||||
        <DataGrid rows={rows} columns={columns} hideFooter />
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <DeleteModal
 | 
			
		||||
        open={isDeleteModalOpen}
 | 
			
		||||
        onDelete={async () => {
 | 
			
		||||
          if (rowId) {
 | 
			
		||||
            await countryStore.deleteCountry(rowId);
 | 
			
		||||
            getCountries(); // Refresh the list after deletion
 | 
			
		||||
            await countryStore.deleteCountry(rowId, language);
 | 
			
		||||
            getCountries(language); // Refresh the list after deletion
 | 
			
		||||
            setIsDeleteModalOpen(false);
 | 
			
		||||
          }
 | 
			
		||||
          setIsDeleteModalOpen(false);
 | 
			
		||||
          setRowId(null);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user