Darius Zivertas profile photo
Darius Zivertas
August 21, 2024

Contentful entity states.ts

Contentful entity states.ts
TypeScript

import { EntrySys } from "@contentful/app-sdk";
import { EntryMetaSysProps } from "contentful-management";

export const EntryStatus = {
  ARCHIVED: "archived",
  PUBLISHED: "published",
  CHANGED: "changed",
  DRAFT: "draft",
} as const;

export type EntryStatusKeys = keyof typeof EntryStatus;
export type EntryStatusValues = (typeof EntryStatus)[EntryStatusKeys];

export const getEntryStatus = (
  entrySys: EntryMetaSysProps | EntrySys
): EntryStatusValues => {
  if (entrySys.archivedVersion) {
    return EntryStatus.ARCHIVED;
  } else if (
    !!entrySys.publishedVersion &&
    entrySys.version == entrySys.publishedVersion + 1
  ) {
    return EntryStatus.PUBLISHED;
  } else if (
    !!entrySys.publishedVersion &&
    entrySys.version >= entrySys.publishedVersion + 2
  ) {
    return EntryStatus.CHANGED;
  }
  return EntryStatus.DRAFT;
};

View this gist on GitHub

HomeBlogProjectsSnippetsSearchContact