Fixes before deploy (#1167)

This commit is contained in:
Charles Bochet
2023-08-11 00:09:52 +02:00
committed by GitHub
parent 5300952b1a
commit fb0f9b7807
10 changed files with 75 additions and 44 deletions

View File

@ -6,40 +6,62 @@ type Props = React.ComponentProps<'div'> & {
workspaceLogo?: string | null; workspaceLogo?: string | null;
}; };
const StyledLogo = styled.div` const StyledContainer = styled.div`
height: 48px; height: 48px;
margin-bottom: ${({ theme }) => theme.spacing(4)}; margin-bottom: ${({ theme }) => theme.spacing(4)};
margin-top: ${({ theme }) => theme.spacing(4)}; margin-top: ${({ theme }) => theme.spacing(4)};
img {
height: 100%;
width: 100%;
}
position: relative; position: relative;
width: 48px; width: 48px;
`; `;
type StyledWorkspaceLogoProps = { const StyledTwentyLogo = styled.img`
border-radius: ${({ theme }) => theme.border.radius.xs};
height: 24px;
width: 24px;
`;
const StyledTwentyLogoContainer = styled.div`
align-items: center;
background-color: ${({ theme }) => theme.background.primary};
border-radius: ${({ theme }) => theme.border.radius.sm};
bottom: ${({ theme }) => `-${theme.spacing(3)}`};
display: flex;
height: 28px;
justify-content: center;
position: absolute;
right: ${({ theme }) => `-${theme.spacing(3)}`};
width: 28px;
`;
type StyledMainLogoProps = {
logo?: string | null; logo?: string | null;
}; };
const StyledWorkspaceLogo = styled.div<StyledWorkspaceLogoProps>` const StyledMainLogo = styled.div<StyledMainLogoProps>`
background: url(${(props) => props.logo}); background: url(${(props) => props.logo});
background-size: cover; background-size: cover;
border-radius: ${({ theme }) => theme.border.radius.xs}; height: 100%;
bottom: ${({ theme }) => `-${theme.spacing(3)}`};
height: ${({ theme }) => theme.spacing(6)}; width: 100%;
position: absolute;
right: ${({ theme }) => `-${theme.spacing(3)}`};
width: ${({ theme }) => theme.spacing(6)};
`; `;
export function Logo({ workspaceLogo, ...props }: Props) { export function Logo({ workspaceLogo, ...props }: Props) {
if (!workspaceLogo) {
return (
<StyledContainer {...props}>
<StyledMainLogo logo="/icons/android/android-launchericon-192-192.png" />
</StyledContainer>
);
}
return ( return (
<StyledLogo {...props}> <StyledContainer {...props}>
<StyledWorkspaceLogo logo={getImageAbsoluteURIOrBase64(workspaceLogo)} /> <StyledMainLogo logo={getImageAbsoluteURIOrBase64(workspaceLogo)} />
<img src="/icons/android/android-launchericon-192-192.png" alt="logo" /> <StyledTwentyLogoContainer>
</StyledLogo> <StyledTwentyLogo src="/icons/android/android-launchericon-192-192.png" />
</StyledTwentyLogoContainer>
</StyledContainer>
); );
} }

View File

@ -76,7 +76,7 @@ export function SignInUpForm() {
const title = useMemo(() => { const title = useMemo(() => {
if (signInUpMode === SignInUpMode.Invite) { if (signInUpMode === SignInUpMode.Invite) {
return `Join ${workspace?.displayName ?? ''} Team`; return `Join ${workspace?.displayName ?? ''} team`;
} }
return signInUpMode === SignInUpMode.SignIn return signInUpMode === SignInUpMode.SignIn

View File

@ -12,6 +12,7 @@ const StyledContainer = styled.div`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: ${({ theme }) => theme.spacing(2)}; gap: ${({ theme }) => theme.spacing(2)};
margin-bottom: ${({ theme }) => theme.spacing(2)};
`; `;
const StyledTitleContainer = styled.div` const StyledTitleContainer = styled.div`
@ -32,7 +33,6 @@ const StyledListContainer = styled.div`
border-radius: ${({ theme }) => theme.spacing(1)}; border-radius: ${({ theme }) => theme.spacing(1)};
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-height: ${({ theme }) => theme.spacing(35)};
overflow: auto; overflow: auto;
width: 100%; width: 100%;
`; `;

View File

@ -91,16 +91,13 @@ export function EntityBoardColumn({
/> />
</BoardCardIdContext.Provider> </BoardCardIdContext.Provider>
))} ))}
<Draggable draggableId={`new-${column.id}`} index={cardIds.length}> <Draggable
draggableId={`new-${column.id}`}
index={cardIds.length}
isDragDisabled={true}
>
{(draggableProvided) => ( {(draggableProvided) => (
<div <div ref={draggableProvided?.innerRef}>
ref={draggableProvided?.innerRef}
{...{
...draggableProvided.dragHandleProps,
draggable: false,
}}
{...draggableProvided?.draggableProps}
>
<StyledNewCardButtonContainer> <StyledNewCardButtonContainer>
<RecoilScope>{boardOptions.newCardComponent}</RecoilScope> <RecoilScope>{boardOptions.newCardComponent}</RecoilScope>
</StyledNewCardButtonContainer> </StyledNewCardButtonContainer>

View File

@ -38,6 +38,7 @@ const StyledInput = styled.input<{
variant: CheckboxVariant; variant: CheckboxVariant;
indeterminate?: boolean; indeterminate?: boolean;
shape?: CheckboxShape; shape?: CheckboxShape;
isChecked: boolean;
}>` }>`
cursor: pointer; cursor: pointer;
margin: 0; margin: 0;
@ -79,9 +80,11 @@ const StyledInput = styled.input<{
width: var(--size); width: var(--size);
} }
&:checked + label:before { & + label:before {
background: ${({ theme }) => theme.color.blue}; background: ${({ theme, isChecked }) =>
border-color: ${({ theme }) => theme.color.blue}; isChecked ? theme.color.blue : 'inherit'};
border-color: ${({ theme, isChecked }) =>
isChecked ? theme.color.blue : 'inherit'};
} }
& + label > svg { & + label > svg {
@ -112,7 +115,6 @@ export function Checkbox({
React.useEffect(() => { React.useEffect(() => {
setIsInternalChecked(checked); setIsInternalChecked(checked);
}, [checked]); }, [checked]);
function handleChange(value: boolean) { function handleChange(value: boolean) {
onChange?.(value); onChange?.(value);
setIsInternalChecked(!isInternalChecked); setIsInternalChecked(!isInternalChecked);
@ -130,6 +132,7 @@ export function Checkbox({
variant={variant} variant={variant}
checkboxSize={size} checkboxSize={size}
shape={shape} shape={shape}
isChecked={isInternalChecked}
onChange={(event) => handleChange(event.target.checked)} onChange={(event) => handleChange(event.target.checked)}
/> />
<label htmlFor="checkbox"> <label htmlFor="checkbox">

View File

@ -19,7 +19,20 @@ const StyledLayout = styled.div`
flex-direction: row; flex-direction: row;
height: 100vh; height: 100vh;
position: relative; position: relative;
scrollbar-color: ${({ theme }) => theme.border.color.medium};
scrollbar-width: 4px;
width: 100vw; width: 100vw;
*::-webkit-scrollbar {
height: 4px;
width: 4px;
}
*::-webkit-scrollbar-thumb {
background-color: ${({ theme }) => theme.border.color.medium};
border-radius: ${({ theme }) => theme.border.radius.sm};
}
`; `;
const NAVBAR_WIDTH = '236px'; const NAVBAR_WIDTH = '236px';

View File

@ -14,6 +14,7 @@ export const ShowPageLeftContainer = styled.div`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: ${({ theme }) => theme.spacing(3)}; gap: ${({ theme }) => theme.spacing(3)};
overflow-y: scroll;
padding: 0px ${({ theme }) => theme.spacing(3)}; padding: 0px ${({ theme }) => theme.spacing(3)};
width: ${({ theme }) => { width: ${({ theme }) => {
const isMobile = useIsMobile(); const isMobile = useIsMobile();

View File

@ -6,3 +6,4 @@ CREATE DATABASE "test";
-- Create a twenty user -- Create a twenty user
CREATE USER twenty PASSWORD 'twenty'; CREATE USER twenty PASSWORD 'twenty';
ALTER USER twenty CREATEDB;

View File

@ -27,12 +27,6 @@ CREATE UNIQUE INDEX "views_workspaceId_type_objectId_name_key" ON "views"("works
-- CreateIndex -- CreateIndex
CREATE UNIQUE INDEX "viewFields_workspaceId_viewId_objectName_fieldName_key" ON "viewFields"("workspaceId", "viewId", "objectName", "fieldName"); CREATE UNIQUE INDEX "viewFields_workspaceId_viewId_objectName_fieldName_key" ON "viewFields"("workspaceId", "viewId", "objectName", "fieldName");
-- AddForeignKey
-- ALTER TABLE "pipeline_progresses" ADD CONSTRAINT "pipeline_progresses_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "companies"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
-- ALTER TABLE "pipeline_progresses" ADD CONSTRAINT "pipeline_progresses_personId_fkey" FOREIGN KEY ("personId") REFERENCES "people"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE "views" ADD CONSTRAINT "views_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE "views" ADD CONSTRAINT "views_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@ -282,7 +282,7 @@ model Person {
/// @Validator.IsOptional() /// @Validator.IsOptional()
avatarUrl String? avatarUrl String?
company Company? @relation(fields: [companyId], references: [id]) company Company? @relation(fields: [companyId], references: [id], onDelete: SetNull)
companyId String? companyId String?
/// @TypeGraphQL.omit(input: true, output: true) /// @TypeGraphQL.omit(input: true, output: true)
workspace Workspace @relation(fields: [workspaceId], references: [id]) workspace Workspace @relation(fields: [workspaceId], references: [id])
@ -407,10 +407,10 @@ model ActivityTarget {
workspaceId String workspaceId String
personId String? personId String?
person Person? @relation(fields: [personId], references: [id]) person Person? @relation(fields: [personId], references: [id], onDelete: Cascade)
companyId String? companyId String?
company Company? @relation(fields: [companyId], references: [id]) company Company? @relation(fields: [companyId], references: [id], onDelete: Cascade)
/// @TypeGraphQL.omit(input: true, output: true) /// @TypeGraphQL.omit(input: true, output: true)
deletedAt DateTime? deletedAt DateTime?
@ -514,10 +514,10 @@ model PipelineProgress {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
companyId String? companyId String?
company Company? @relation(fields: [companyId], references: [id]) company Company? @relation(fields: [companyId], references: [id], onDelete: Cascade)
personId String? personId String?
person Person? @relation(fields: [personId], references: [id]) person Person? @relation(fields: [personId], references: [id], onDelete: Cascade)
@@map("pipeline_progresses") @@map("pipeline_progresses")
} }