diff --git a/app/client/src/ce/constants/messages.ts b/app/client/src/ce/constants/messages.ts index 66d03e049145..5b311ae17341 100644 --- a/app/client/src/ce/constants/messages.ts +++ b/app/client/src/ce/constants/messages.ts @@ -2372,10 +2372,12 @@ export const EDITOR_PANE_TEXTS = { query_create_tab_title: () => "Create new query from", widgets_create_tab_title: () => "Drag & drop UI elements", js_create_tab_title: () => "Create JS object from", - js_create_modules: () => "JS modules (Beta)", + js_create_modules: (isBeta: boolean) => + `JS modules ${isBeta ? "(Beta)" : ""}`, queries_create_from_existing: () => "Datasources", queries_create_new: () => "Quick actions", - queries_create_modules: () => "Query modules (Beta)", + queries_create_modules: (isBeta: boolean) => + `Query modules ${isBeta ? "(Beta)" : ""}`, loading_building_blocks: () => "Loading building blocks", empty_search_result: (type: string) => `No ${type} match your search`, search_objects: { diff --git a/app/client/src/ce/entities/FeatureFlag.ts b/app/client/src/ce/entities/FeatureFlag.ts index 670f23d87448..2fcb91c60b29 100644 --- a/app/client/src/ce/entities/FeatureFlag.ts +++ b/app/client/src/ce/entities/FeatureFlag.ts @@ -56,6 +56,7 @@ export const FEATURE_FLAG = { license_multi_org_enabled: "license_multi_org_enabled", release_table_custom_sort_function_enabled: "release_table_custom_sort_function_enabled", + release_git_package_enabled: "release_git_package_enabled", } as const; export type FeatureFlag = keyof typeof FEATURE_FLAG; @@ -103,6 +104,7 @@ export const DEFAULT_FEATURE_FLAG_VALUE: FeatureFlags = { release_table_infinitescroll_enabled: false, license_multi_org_enabled: false, release_table_custom_sort_function_enabled: false, + release_git_package_enabled: false, }; export const AB_TESTING_EVENT_KEYS = { diff --git a/app/client/src/git/ce/constants/messages.tsx b/app/client/src/git/ce/constants/messages.tsx index 9fdabf685289..200e109bb360 100644 --- a/app/client/src/git/ce/constants/messages.tsx +++ b/app/client/src/git/ce/constants/messages.tsx @@ -29,7 +29,7 @@ export const OPS_MODAL = { }; export const TAB_RELEASE = { - TITLE: "Release version", + TITLE: "Release a new version", RELEASE_BTN: "Release", }; @@ -44,6 +44,7 @@ export const RELEASE_NOTES_INPUT = { }; export const LATEST_COMMIT_INFO = { + TITLE: "Commit", LOADING_COMMIT_MESSAGE: "Fetching latest commit...", NO_COMMIT_MESSAGE: "No commit message found", }; diff --git a/app/client/src/git/components/LatestCommitInfo/LatestCommitInfoView.tsx b/app/client/src/git/components/LatestCommitInfo/LatestCommitInfoView.tsx index 72a324087e2d..eed9d33f3e26 100644 --- a/app/client/src/git/components/LatestCommitInfo/LatestCommitInfoView.tsx +++ b/app/client/src/git/components/LatestCommitInfo/LatestCommitInfoView.tsx @@ -4,9 +4,16 @@ import React from "react"; import styled from "styled-components"; import { howMuchTimeBeforeText } from "utils/helpers"; -const Container = styled(Flex)` - border-radius: 4px; - background-color: var(--ads-v2-color-gray-0); +const TitleText = styled(Text)` + font-weight: 500; +`; + +const MutedText = styled(Text)` + font-weight: 300; +`; + +const LoadingContainer = styled(Flex)` + margin-bottom: 19px; `; interface LatestCommitInfoViewProps { @@ -28,51 +35,61 @@ function LatestCommitInfoView({ ? howMuchTimeBeforeText(new Date(committedAt * 1000).toString()) : null; - if (isLoading) { - return ( - - - {LATEST_COMMIT_INFO.LOADING_COMMIT_MESSAGE} - - ); - } - return ( - - - - {message ?? {LATEST_COMMIT_INFO.NO_COMMIT_MESSAGE}} - - {authorName && ( - - {authorName && !readableCommittedAt - ? `Committed by ${authorName}` - : null} - {authorName && readableCommittedAt - ? `${authorName} committed ${readableCommittedAt} ago` - : null} - - )} - - - - - - {hash ?? "-"} - + + + {LATEST_COMMIT_INFO.TITLE} + + {isLoading && ( + + + {LATEST_COMMIT_INFO.LOADING_COMMIT_MESSAGE} + + )} + {!isLoading && ( + + + + {message ?? {LATEST_COMMIT_INFO.NO_COMMIT_MESSAGE}} + + {authorName && ( + + {authorName && !readableCommittedAt + ? `Committed by ${authorName}` + : null} + {authorName && readableCommittedAt + ? `${authorName} committed ${readableCommittedAt} ago` + : null} + + )} + + + + + + {hash ?? "-"} + + + - - + )} + ); } diff --git a/app/client/src/git/components/OpsModal/TabRelease/TabReleaseView.tsx b/app/client/src/git/components/OpsModal/TabRelease/TabReleaseView.tsx index a28bff3afb2e..f429a2419079 100644 --- a/app/client/src/git/components/OpsModal/TabRelease/TabReleaseView.tsx +++ b/app/client/src/git/components/OpsModal/TabRelease/TabReleaseView.tsx @@ -42,7 +42,7 @@ function TabReleaseView({ const [releaseVersion, setReleaseVersion] = useState(null); const [releaseNotes, setReleaseNotes] = useState(null); - const isReleaseDisabled = !releaseVersion || !releaseNotes; + const isReleaseDisabled = !releaseVersion; useEffect( function fetchPretagOnInitEffect() { diff --git a/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.test.tsx b/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.test.tsx index a34dfa3c5996..827a784a72c2 100644 --- a/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.test.tsx +++ b/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.test.tsx @@ -4,7 +4,6 @@ import ReleaseVersionRadioGroupView from "./ReleaseVersionRadioGroupView"; import "@testing-library/jest-dom"; describe("ReleaseVersionRadioGroupView", () => { - const releasedAt = Math.floor((Date.now() - 3600000) / 1000); const mockOnVersionChange = jest.fn(); const renderComponent = (props = {}) => { @@ -12,7 +11,6 @@ describe("ReleaseVersionRadioGroupView", () => { , ); @@ -31,9 +29,6 @@ describe("ReleaseVersionRadioGroupView", () => { expect(getByTestId("t--git-release-next-version").textContent).toBe( "v1.0.1", ); - expect(getByTestId("t--git-release-released-at").textContent).toBe( - "Last released: v1.0.0 (1 hr ago)", - ); expect(getByRole("radio", { name: /patch/i })).toBeChecked(); }); diff --git a/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.tsx b/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.tsx index 1c63075d9d1b..15a1693c10cc 100644 --- a/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.tsx +++ b/app/client/src/git/components/ReleaseVersionRadioGroup/ReleaseVersionRadioGroupView.tsx @@ -1,29 +1,36 @@ import React, { useCallback, useEffect, useMemo, useState } from "react"; -import { Flex, Radio, RadioGroup, Tag, Text } from "@appsmith/ads"; +import { Flex, Icon, Radio, RadioGroup, Tag, Text } from "@appsmith/ads"; import { RELEASE_VERSION_RADIO_GROUP } from "git/ee/constants/messages"; import { inc } from "semver"; import noop from "lodash/noop"; -import { howMuchTimeBeforeText } from "utils/helpers"; +import styled from "styled-components"; + +const TitleText = styled(Text)` + font-weight: 500; +`; + +const CurrentVersionTag = styled(Tag)` + border-color: var(--ads-v2-color-gray-300); +`; + +const NextVersionTag = styled(Tag)` + background-color: var(--ads-v2-color-purple-100); + border-color: var(--ads-v2-color-purple-300); +`; type ReleaseType = "major" | "minor" | "patch" | null; interface ReleaseVersionRadioGroupViewProps { latestReleaseVersion: string | null; onVersionChange: (value: string | null) => void; - releasedAt: number | null; } function ReleaseVersionRadioGroupView({ latestReleaseVersion = null, onVersionChange = noop, - releasedAt = null, }: ReleaseVersionRadioGroupViewProps) { const [releaseType, setReleaseType] = useState("patch"); - const readableReleaseAt = releasedAt - ? howMuchTimeBeforeText(new Date(releasedAt * 1000).toString()) - : null; - const nextVersion = useMemo(() => { if (!releaseType) return null; @@ -47,42 +54,42 @@ function ReleaseVersionRadioGroupView({ }, []); return ( - - + + {RELEASE_VERSION_RADIO_GROUP.TITLE} - - - - + + Major + Minor + Patch + + + {latestReleaseVersion && ( + - {nextVersion ?? "-"} - - - + )} + {latestReleaseVersion && nextVersion && ( + + )} + - Major - Minor - Patch - + {nextVersion ?? "-"} + - {latestReleaseVersion && ( - - {RELEASE_VERSION_RADIO_GROUP.LAST_RELEASED}:{" "} - {latestReleaseVersion ?? "-"}{" "} - {readableReleaseAt ? `(${readableReleaseAt} ago)` : null} - - )} ); } diff --git a/app/client/src/git/components/ReleaseVersionRadioGroup/index.tsx b/app/client/src/git/components/ReleaseVersionRadioGroup/index.tsx index cd25d77669d2..71cfa013e9d9 100644 --- a/app/client/src/git/components/ReleaseVersionRadioGroup/index.tsx +++ b/app/client/src/git/components/ReleaseVersionRadioGroup/index.tsx @@ -16,7 +16,6 @@ function ReleaseVersionRadioGroup({ ); }