feat: resolved bug reported on search and integration failing due to typo in integration field

This commit is contained in:
=
2024-07-30 23:19:07 +05:30
parent 8435b20178
commit 6a156371c0
10 changed files with 30 additions and 24 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ export const fetchProjectSecrets = async ({
};
export const mergePersonalSecrets = (rawSecrets: SecretV3Raw[]) => {
const personalSecrets: Record<string, { id: string; value: string }> = {};
const personalSecrets: Record<string, { id: string; value?: string }> = {};
const secrets: SecretV3RawSanitized[] = [];
rawSecrets.forEach((el) => {
const decryptedSecret: SecretV3RawSanitized = {
+2 -2
View File
@@ -34,7 +34,7 @@ export type SecretV3RawSanitized = {
id: string;
version: number;
key: string;
value: string;
value?: string;
comment?: string;
reminderRepeatDays?: number | null;
reminderNote?: string | null;
@@ -57,7 +57,7 @@ export type SecretV3Raw = {
version: number;
type: string;
secretKey: string;
secretValue: string;
secretValue?: string;
secretComment?: string;
secretReminderNote?: string;
secretReminderRepeatDays?: number;
@@ -19,13 +19,7 @@ import { twMerge } from "tailwind-merge";
import { createNotification } from "@app/components/notifications";
import { ProjectPermissionCan } from "@app/components/permissions";
import {
EmptyState,
IconButton,
SecretInput,
TableContainer,
Tooltip
} from "@app/components/v2";
import { EmptyState, IconButton, SecretInput, TableContainer, Tooltip } from "@app/components/v2";
import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context";
import { useToggle } from "@app/hooks";
import { useResyncSecretReplication } from "@app/hooks/api";
@@ -37,7 +31,11 @@ type Props = {
secretPath?: string;
secretImport?: TSecretImport;
isReplicationExpand?: boolean;
importedSecrets: { key: string; value: string; overriden: { env: string; secretPath: string } }[];
importedSecrets: {
key: string;
value?: string;
overriden: { env: string; secretPath: string };
}[];
searchTerm: string;
onExpandReplicateSecrets: (id: string) => void;
};
@@ -45,9 +43,9 @@ type Props = {
// to show the environment and folder icon
export const EnvFolderIcon = ({
env,
secretPath,
// isReplication
}: {
secretPath
}: // isReplication
{
env: string;
secretPath: string;
// isReplication?: boolean;
@@ -63,7 +63,7 @@ export const computeImportedSecretRows = (
const importedEntry: Record<string, boolean> = {};
const importedSecretEntries: {
key: string;
value: string;
value?: string;
overriden: {
env: string;
secretPath: string;
@@ -417,7 +417,12 @@ export const SecretDetailSidebar = ({
className="px-2 py-1"
variant="outline_bg"
leftIcon={<FontAwesomeIcon icon={faShare} />}
onClick={() => handleSecretShare(secret.valueOverride ?? secret.value)}
onClick={() => {
const value = secret?.valueOverride ?? secret?.value;
if (value) {
handleSecretShare(value);
}
}}
>
Share Secret
</Button>
@@ -79,7 +79,7 @@ export const filterSecrets = (secrets: SecretV3RawSanitized[], filter: Filter) =
const searchTerm = filter.searchFilter.toLowerCase();
return (
(!isTagFilterActive || tags?.some(({ id }) => filter.tags?.[id])) &&
(key.toLowerCase().includes(searchTerm) || value.toLowerCase().includes(searchTerm))
(key.toLowerCase().includes(searchTerm) || value?.toLowerCase().includes(searchTerm))
);
});
@@ -23,7 +23,10 @@ export enum SecretActionType {
export const formSchema = z.object({
key: z.string().trim().min(1, { message: "Secret key is required" }),
value: z.string().transform((val) => (val.at(-1) === "\n" ? `${val.trim()}\n` : val.trim())),
value: z
.string()
.transform((val) => (val.at(-1) === "\n" ? `${val.trim()}\n` : val.trim()))
.optional(),
idOverride: z.string().trim().optional(),
valueOverride: z
.string()