import type { NextConfig } from "next";
import path from "node:path";
import { createRequire } from "node:module";

const require = createRequire(import.meta.url);

const nextConfig: NextConfig = {
	reactStrictMode: true,
	typedRoutes: false,
	transpilePackages: ["react-data-grid"],
	webpack: (config, { isServer }) => {
		if (!isServer) {
			config.resolve.alias = {
				...config.resolve.alias,
				react: path.dirname(require.resolve("react/package.json")),
				"react-dom": path.dirname(require.resolve("react-dom/package.json")),
			};
		}
		return config;
	},
	redirects: async () => [
		{ source: "/settings/users", destination: "/admin/users", permanent: true },
		{ source: "/settings/users/new", destination: "/admin/users/new", permanent: true },
		{
			source: "/settings/users/:userId",
			destination: "/admin/users/:userId",
			permanent: true,
		},
		{ source: "/settings/roles", destination: "/admin/roles", permanent: true },
		{
			source: "/settings/roles/:roleId",
			destination: "/admin/roles/:roleId",
			permanent: true,
		},
		{
			source: "/settings/permissions",
			destination: "/admin/permissions",
			permanent: true,
		},
		{ source: "/leave/admin", destination: "/admin/leave-types", permanent: true },
	],
	typescript:{
		ignoreBuildErrors: true,
	}
};

export default nextConfig;
