mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-08-23 14:52:18 +10:00
feat: enable semantic CSS by default
This commit is contained in:
@@ -7,8 +7,6 @@ export type FeatureFlags = {
|
||||
disableEmailAuth: boolean;
|
||||
showSponsors: boolean;
|
||||
smtpEnabled: boolean;
|
||||
semanticCssAuthoring: boolean;
|
||||
semanticCssDefault: boolean;
|
||||
};
|
||||
|
||||
// Mirrors isSmtpEnabled() in packages/email/src/transport.ts (kept local to avoid an api -> email dependency).
|
||||
@@ -32,8 +30,6 @@ export const flagsRouter = {
|
||||
disableEmailAuth: z.boolean().describe("Whether email-based authentication is disabled on this instance."),
|
||||
showSponsors: z.boolean().describe("Whether sponsor placements are shown on this instance."),
|
||||
smtpEnabled: z.boolean().describe("Whether outbound email (SMTP) is configured on this instance."),
|
||||
semanticCssAuthoring: z.boolean().describe("Whether Semantic CSS authoring is enabled on this instance."),
|
||||
semanticCssDefault: z.boolean().describe("Whether new resumes start in Semantic CSS mode."),
|
||||
}),
|
||||
)
|
||||
.handler(
|
||||
@@ -42,8 +38,6 @@ export const flagsRouter = {
|
||||
disableEmailAuth: env.FLAG_DISABLE_EMAIL_AUTH,
|
||||
showSponsors: env.FLAG_SHOW_SPONSORS,
|
||||
smtpEnabled: isSmtpEnabled(),
|
||||
semanticCssAuthoring: env.FLAG_SEMANTIC_CSS_AUTHORING,
|
||||
semanticCssDefault: env.FLAG_SEMANTIC_CSS_DEFAULT,
|
||||
}),
|
||||
),
|
||||
};
|
||||
|
||||
@@ -8,8 +8,6 @@ const mocks = vi.hoisted(() => ({
|
||||
getById: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("@reactive-resume/env/server", () => ({ env: { FLAG_SEMANTIC_CSS_DEFAULT: false } }));
|
||||
|
||||
vi.mock("../../context", async () => {
|
||||
const { os } = await vi.importActual<typeof import("@orpc/server")>("@orpc/server");
|
||||
return {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { env } from "@reactive-resume/env/server";
|
||||
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
|
||||
import { generateId, generateRandomName, slugify } from "@reactive-resume/utils/string";
|
||||
import { protectedProcedure } from "../../context";
|
||||
@@ -74,7 +73,6 @@ export const crudRouter = {
|
||||
locale: context.locale,
|
||||
userId: context.user.id,
|
||||
data: createResumeData({
|
||||
semanticCssDefault: env.FLAG_SEMANTIC_CSS_DEFAULT,
|
||||
withSampleData: input.withSampleData,
|
||||
name: input.name,
|
||||
locale: context.locale,
|
||||
|
||||
@@ -95,19 +95,17 @@ describe("hasRenderDataChanged", () => {
|
||||
});
|
||||
|
||||
describe("createResumeData", () => {
|
||||
it("seeds empty semantic source only for the default-enabled cohort", () => {
|
||||
expect(createResumeData({ semanticCssDefault: true }).metadata.stylesheet).toEqual({
|
||||
it("always seeds an empty semantic stylesheet", () => {
|
||||
expect(createResumeData({}).metadata.stylesheet).toEqual({
|
||||
mode: "semantic",
|
||||
source: { languageVersion: 1, text: "@version 1;\n" },
|
||||
applied: { languageVersion: 1, text: "@version 1;\n" },
|
||||
});
|
||||
expect(createResumeData({ semanticCssDefault: false }).metadata.stylesheet).toBeUndefined();
|
||||
});
|
||||
|
||||
it("clones normal and sample defaults instead of mutating shared data", () => {
|
||||
const normal = createResumeData({ semanticCssDefault: false, locale: "de-DE" });
|
||||
const normal = createResumeData({ locale: "de-DE" });
|
||||
const sample = createResumeData({
|
||||
semanticCssDefault: true,
|
||||
withSampleData: true,
|
||||
name: "Sample Person",
|
||||
locale: "de-DE",
|
||||
|
||||
@@ -6,7 +6,6 @@ import { createSampleResumeData } from "@reactive-resume/schema/resume/sample";
|
||||
import { EMPTY_SEMANTIC_CSS_SOURCE } from "@reactive-resume/schema/resume/stylesheet";
|
||||
|
||||
type CreateResumeDataOptions = {
|
||||
semanticCssDefault: boolean;
|
||||
withSampleData?: boolean;
|
||||
name?: string;
|
||||
locale?: Locale;
|
||||
@@ -30,13 +29,11 @@ export function createResumeData(options: CreateResumeDataOptions): ResumeData {
|
||||
const data = structuredClone(options.withSampleData ? createSampleResumeData(options.name) : defaultResumeData);
|
||||
|
||||
if (options.locale) data.metadata.page.locale = options.locale;
|
||||
if (options.semanticCssDefault) {
|
||||
data.metadata.stylesheet = {
|
||||
mode: "semantic",
|
||||
source: { languageVersion: 1, text: EMPTY_SEMANTIC_CSS_SOURCE },
|
||||
applied: { languageVersion: 1, text: EMPTY_SEMANTIC_CSS_SOURCE },
|
||||
};
|
||||
}
|
||||
data.metadata.stylesheet = {
|
||||
mode: "semantic",
|
||||
source: { languageVersion: 1, text: EMPTY_SEMANTIC_CSS_SOURCE },
|
||||
applied: { languageVersion: 1, text: EMPTY_SEMANTIC_CSS_SOURCE },
|
||||
};
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user