({ templateName }: { templateName: TemplateName })
| 49 | }; |
| 50 | |
| 51 | const files = ({ templateName }: { templateName: TemplateName }) => ({ |
| 52 | "postcss.config.js": js` |
| 53 | export default ({ |
| 54 | plugins: [ |
| 55 | { |
| 56 | // Minimal PostCSS plugin to test that it's being used |
| 57 | postcssPlugin: 'replace', |
| 58 | Declaration (decl) { |
| 59 | decl.value = decl.value |
| 60 | .replace( |
| 61 | /NEW_PADDING_INJECTED_VIA_POSTCSS/g, |
| 62 | ${JSON.stringify(NEW_PADDING)}, |
| 63 | ) |
| 64 | .replace( |
| 65 | /PADDING_INJECTED_VIA_POSTCSS/g, |
| 66 | ${JSON.stringify(PADDING)}, |
| 67 | ); |
| 68 | }, |
| 69 | }, |
| 70 | ], |
| 71 | }); |
| 72 | `, |
| 73 | // RSC Framework mode doesn't support custom entries yet |
| 74 | ...(!templateName.includes("rsc") |
| 75 | ? { |
| 76 | "app/entry.client.tsx": js` |
| 77 | import "./entry.client.css"; |
| 78 | |
| 79 | import { HydratedRouter } from "react-router/dom"; |
| 80 | import { startTransition, StrictMode } from "react"; |
| 81 | import { hydrateRoot } from "react-dom/client"; |
| 82 | |
| 83 | startTransition(() => { |
| 84 | hydrateRoot( |
| 85 | document, |
| 86 | <StrictMode> |
| 87 | <HydratedRouter /> |
| 88 | </StrictMode> |
| 89 | ); |
| 90 | }); |
| 91 | `, |
| 92 | "app/entry.client.css": css` |
| 93 | .entry-client { |
| 94 | background: pink; |
| 95 | padding: ${PADDING}; |
| 96 | } |
| 97 | `, |
| 98 | } |
| 99 | : {}), |
| 100 | "app/root.tsx": js` |
| 101 | import { Links, Meta, Outlet, Scripts } from "react-router"; |
| 102 | |
| 103 | export default function Root() { |
| 104 | return ( |
| 105 | <html lang="en"> |
| 106 | <head> |
| 107 | <Meta /> |
| 108 | <Links /> |
no test coverage detected
searching dependent graphs…