Skip to content

Commit fa49216

Browse files
refactor
1 parent 50575ec commit fa49216

9 files changed

Lines changed: 37 additions & 16 deletions

File tree

packages/devextreme-cli/src/applications/application.nextjs.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,16 +93,16 @@ const create = async(appName, options) => {
9393
}
9494

9595
addTemplate(appPath, appName, templateOptions);
96-
modifyIndexHtml(appPath, templateOptions);
96+
modifyAppFiles(appPath, templateOptions);
9797
};
9898

99-
const modifyIndexHtml = (appPath, { project, isTypeScript }) => {
100-
const indexHtmlPath = path.join(appPath, `src/app/layout.${isTypeScript ? 'tsx' : 'jsx'}`);
99+
const modifyAppFiles = (appPath, { project, isTypeScript }) => {
100+
const entryFilePath = path.join(appPath, `src/app/layout.${isTypeScript ? 'tsx' : 'jsx'}`);
101101

102-
let htmlContent = fs.readFileSync(indexHtmlPath).toString();
103-
htmlContent = htmlContent.replace(/<title>[^<]+<\/title>/, `<title>${project}<\/title>`);
102+
let content = fs.readFileSync(entryFilePath).toString();
103+
content = content.replace(/<title>[^<]+<\/title>/, `<title>${project}<\/title>`);
104104

105-
fs.writeFileSync(indexHtmlPath, htmlContent);
105+
fs.writeFileSync(entryFilePath, content);
106106
};
107107

108108
const getCorrectPath = (extension, pathToApp, isTypeScript) => {
@@ -192,7 +192,7 @@ const addSamplePages = (appPath, templateOptions) => {
192192
);
193193

194194
const pagesPath = path.join(appPath, 'src', 'app/pages');
195-
// fs.mkdirSync(pagesPath);
195+
196196
templateCreator.moveTemplateFilesToProject(samplePageTemplatePath, pagesPath, {
197197
isTypeScript: templateOptions.isTypeScript
198198
}, getCorrectPath);

packages/devextreme-cli/src/templates/nextjs/application/next.config.mjs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ const nextConfig = {
77
destination: '/pages/home',
88
permanent: true,
99
},
10+
{
11+
source: '/login',
12+
destination: '/auth/login',
13+
permanent: true,
14+
},
15+
{
16+
source: '/reset-password',
17+
destination: '/auth/reset-password',
18+
permanent: true,
19+
},
20+
{
21+
source: '/create-account',
22+
destination: '/auth/create-account',
23+
permanent: true,
24+
},
1025
]
1126
},
1227
}
Binary file not shown.

packages/devextreme-cli/src/templates/nextjs/application/src/app/layout.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import { usePathname } from 'next/navigation';
44
import LoadPanel from 'devextreme-react/load-panel';
5-
import { AuthProvider, useAuth} from '../contexts/auth';
6-
import { NavigationProvider } from '../contexts/navigation';
7-
import { ThemeContext, useThemeContext} from "../theme";
5+
import { AuthProvider, useAuth} from '@/contexts/auth';
6+
import { NavigationProvider } from '@/contexts/navigation';
7+
import { ThemeContext, useThemeContext} from "@/theme";
88

99
function Page({ children }) {
1010
const { loading } = useAuth();

packages/devextreme-cli/src/templates/nextjs/application/src/app/pages/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default function Content({children}) {
1212

1313
useEffect(() => {
1414
if (!loading && !user) {
15-
router.push('/auth/login');
15+
router.push('/login');
1616
}
1717
}, [user, loading, router]);
1818

packages/devextreme-cli/src/templates/nextjs/application/src/components/create-account-form/CreateAccountForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export default function CreateAccountForm() {
9696
</ButtonItem>
9797
</Form>
9898
<div className={'login-link'}>
99-
Have an account? <Link href={'/auth/login'}>Sign In</Link>
99+
Have an account? <Link href={'/login'}>Sign In</Link>
100100
</div>
101101
</form>
102102
);

packages/devextreme-cli/src/templates/nextjs/application/src/components/login-form/LoginForm.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ export default function LoginForm() {
3232
if (!result.isOk) {
3333
setLoading(false);
3434
notify(result.message, 'error', 2000);
35+
} else {
36+
router.push('/');
3537
}
3638
}, [signIn]);
3739

packages/devextreme-cli/src/templates/nextjs/application/src/components/reset-password-form/ResetPasswordForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export default function ResetPasswordForm() {
6868
</ButtonItem>
6969
</Form>
7070
<div className={'login-link'}>
71-
Return to <Link href={'/auth/login'}>Sign In</Link>
71+
Return to <Link href={'/login'}>Sign In</Link>
7272
</div>
7373
</form>
7474
);

packages/devextreme-cli/src/utility/template-creator.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,18 @@ const Mustache = require('mustache');
77
const applyTemplateToFile = (filePath, templateOptions) => {
88
const tags = ['<%=', '%>'];
99
const fileContent = fs.readFileSync(filePath);
10-
const content = Mustache.render(fileContent.toString(), templateOptions, {}, tags);
1110

12-
return content;
11+
if(fileContent.includes(tags[0])) {
12+
return Mustache.render(fileContent.toString(), templateOptions, {}, tags);
13+
}
14+
15+
return fileContent;
1316
};
1417

15-
const addPageToApp = (pageName, pageDir, templatePagesPath, getCorrectExtension, { getPageFileName = () => pageName }) => {
18+
const addPageToApp = (pageName, pageDir, templatePagesPath, getCorrectExtension, { getPageFileName = () => pageName } = {}) => {
1619
fs.readdirSync(templatePagesPath).forEach((pageItem) => {
1720
const pagePath = path.join(pageDir, `${getPageFileName(pageName, pageItem)}${getCorrectExtension(extname(pageItem))}`);
21+
1822
if(fs.existsSync(pagePath)) {
1923
console.error('The page already exists');
2024
process.exit();

0 commit comments

Comments
 (0)