diff --git a/apps/frontend/src/app/(app)/(site)/billing/page.tsx b/apps/frontend/src/app/(app)/(site)/billing/page.tsx index bb879c108..f17d2f87d 100644 --- a/apps/frontend/src/app/(app)/(site)/billing/page.tsx +++ b/apps/frontend/src/app/(app)/(site)/billing/page.tsx @@ -8,7 +8,7 @@ export const metadata: Metadata = { }; export default async function Page() { return ( -
+
); diff --git a/apps/frontend/src/app/(app)/(site)/integrations/social/layout.tsx b/apps/frontend/src/app/(app)/(site)/integrations/social/layout.tsx index 124e0fece..a194763c2 100644 --- a/apps/frontend/src/app/(app)/(site)/integrations/social/layout.tsx +++ b/apps/frontend/src/app/(app)/(site)/integrations/social/layout.tsx @@ -9,7 +9,7 @@ export default async function IntegrationLayout({ return (
-
+
{t('adding_channel_redirecting_you', 'Adding channel, Redirecting You')} {children}
diff --git a/apps/frontend/src/app/(app)/auth/layout.tsx b/apps/frontend/src/app/(app)/auth/layout.tsx index 9fcbfa8a0..325070256 100644 --- a/apps/frontend/src/app/(app)/auth/layout.tsx +++ b/apps/frontend/src/app/(app)/auth/layout.tsx @@ -15,13 +15,13 @@ export default async function AuthLayout({ const t = await getT(); return ( -
+
{/**/} -
-
+
+
-
{children}
+
{children}
diff --git a/apps/frontend/src/app/(app)/layout.tsx b/apps/frontend/src/app/(app)/layout.tsx index 4a60fc05d..4fa14f0db 100644 --- a/apps/frontend/src/app/(app)/layout.tsx +++ b/apps/frontend/src/app/(app)/layout.tsx @@ -73,9 +73,9 @@ export default async function AppLayout({ children }: { children: ReactNode }) { transloadit={ process.env.TRANSLOADIT_AUTH && process.env.TRANSLOADIT_TEMPLATE ? [ - process.env.TRANSLOADIT_AUTH!, - process.env.TRANSLOADIT_TEMPLATE!, - ] + process.env.TRANSLOADIT_AUTH!, + process.env.TRANSLOADIT_TEMPLATE!, + ] : [] } > diff --git a/apps/frontend/src/app/global.scss b/apps/frontend/src/app/global.scss index 5a524d1fb..cfb5220a5 100644 --- a/apps/frontend/src/app/global.scss +++ b/apps/frontend/src/app/global.scss @@ -6,25 +6,28 @@ @import '@uppy/core/dist/style.css'; @import '@uppy/dashboard/dist/style.css'; +// Basic root settings +html, body { + overflow-x: hidden; background: var(--new-bgColor) !important; color: var(--new-btn-text); -} - -body * { - outline: none !important; + min-width: 100%; } .box { position: relative; } + .box span { position: relative; z-index: 2; } + #tooltip { z-index: 10000; } + .box:after { border-radius: 50px; width: 100%; @@ -42,35 +45,74 @@ body * { .showbox { @apply text-primary; } + .showbox:after { @apply bg-textColor; opacity: 1; transition: all 0.3s ease-in-out; } + .table1 { width: 100%; border-collapse: collapse; + font-size: 14px; + + @media (max-width: 768px) { + font-size: 12px; + } + + @media (max-width: 640px) { + font-size: 10px; + } } .table1 thead { @apply bg-customColor8 border-b border-b-fifth; height: 44px; font-size: 12px; + + @media (max-width: 640px) { + height: 36px; + font-size: 10px; + } } + .table1 thead th, .table1 tbody td { text-align: left; padding: 14px 24px; + + @media (max-width: 768px) { + padding: 10px 16px; + } + + @media (max-width: 640px) { + padding: 8px 12px; + } } .table1 tbody td { padding: 16px 24px; font-size: 14px; + + @media (max-width: 768px) { + padding: 12px 16px; + font-size: 12px; + } + + @media (max-width: 640px) { + padding: 8px 12px; + font-size: 11px; + } } .swal2-modal { @apply bg-primary #{!important}; @apply border-b-[2px] border-b-sixth; + + @media (max-width: 768px) { + max-width: 90vw !important; + } } .swal2-modal * { @@ -84,6 +126,7 @@ body * { .swal2-cancel { @apply text-white #{!important}; } + .swal2-confirm { @apply bg-customColor50 #{!important}; @apply text-white #{!important}; @@ -108,11 +151,23 @@ body * { display: flex; align-items: center; margin-right: 0 !important; + width: 100%; + + @media (max-width: 640px) { + height: 36px; + font-size: 12px; + padding-left: 12px; + } } .react-tags input { @apply placeholder-textColor; font-size: 14px; + width: 100%; + + @media (max-width: 640px) { + font-size: 12px; + } } .react-tags.is-active { @@ -172,20 +227,18 @@ body * { display: inline-block; width: 0.65rem; height: 0.65rem; - clip-path: polygon( - 10% 0, - 0 10%, - 40% 50%, - 0 90%, - 10% 100%, - 50% 60%, - 90% 100%, - 100% 90%, - 60% 50%, - 100% 10%, - 90% 0, - 50% 40% - ); + clip-path: polygon(10% 0, + 0 10%, + 40% 50%, + 0 90%, + 10% 100%, + 50% 60%, + 90% 100%, + 100% 90%, + 60% 50%, + 100% 10%, + 90% 0, + 50% 40%); margin-left: 0.5rem; font-size: 0.875rem; @apply bg-customColor53; @@ -293,6 +346,7 @@ body * { font-size: 20px !important; font-weight: 400 !important; } + .auto-width { width: auto !important; } @@ -309,13 +363,14 @@ body * { z-index: 9999 !important; } -:empty + .existing-empty { +:empty+.existing-empty { display: none; } .mantine-Paper-root { outline: none !important; } + // //:root { // --copilot-kit-primary-color: #612ad5 !important; @@ -386,17 +441,19 @@ body * { } .uppy-ProgressBar-inner[style='width: 0%;'], -.uppy-ProgressBar-inner[style='width: 0%;'] + div { +.uppy-ProgressBar-inner[style='width: 0%;']+div { opacity: 0; } + .uppy-ProgressBar-inner[style='width: 100%;'], -.uppy-ProgressBar-inner[style='width: 100%;'] + div { +.uppy-ProgressBar-inner[style='width: 100%;']+div { @apply animate-normalFadeOut; } .fill-text-textColor { -webkit-text-fill-color: white !important; } + div div .set-font-family { font-family: 'Helvetica Neue', Helvetica !important; font-stretch: 100% !important; @@ -431,6 +488,7 @@ div div .set-font-family { animation: loading 4s linear 0s infinite; filter: blur(0.4px); } + @keyframes loading { 0% { max-width: 0; @@ -441,7 +499,7 @@ div div .set-font-family { display: none; } -.tags-top > div { +.tags-top>div { flex: 1; margin-right: 20px; border: 0 !important; @@ -477,7 +535,7 @@ div div .set-font-family { .tags-top .react-tags__list, .tags-top .react-tags__list li, -.tags-top .react-tags__list li > div { +.tags-top .react-tags__list li>div { height: 35px; } @@ -485,7 +543,7 @@ div div .set-font-family { z-index: 1000 !important; } -.tags-top .react-tags__list-item > div { +.tags-top .react-tags__list-item>div { display: flex; align-items: center; padding-left: 5px; @@ -507,6 +565,7 @@ html[dir='rtl'] .lbox { html[dir='rtl'] [dir='ltr'] { direction: rtl !important; } + // .uppy-Dashboard-AddFiles { display: none !important; @@ -527,12 +586,15 @@ html[dir='rtl'] [dir='ltr'] { display: none !important; opacity: 0 !important; } + .bigWrap .uppy-StatusBar { height: 32px !important; } + .uppy-StatusBar { //@apply bg-customColor55; } + // //.uppy-Dashboard-inner { // height: 70px !important; @@ -540,6 +602,7 @@ html[dir='rtl'] [dir='ltr'] { .uppy-Dashboard-files { display: none; } + // .uppy-DashboardContent-bar { display: none !important; @@ -549,8 +612,8 @@ html[dir='rtl'] [dir='ltr'] { display: block; } -.uppy-StatusBar-content { -} +.uppy-StatusBar-content {} + // //.uppy-StatusBar-content { // padding: 0 !important; @@ -608,13 +671,11 @@ html[dir='rtl'] [dir='ltr'] { } .repeated-strip { - background: repeating-linear-gradient( - 135deg, - var(--new-bgColorInner), - var(--new-bgColorInner) 4px, - var(--new-big-strips) 4px, - var(--new-big-strips) 8px - ); + background: repeating-linear-gradient(135deg, + var(--new-bgColorInner), + var(--new-bgColorInner) 4px, + var(--new-big-strips) 4px, + var(--new-big-strips) 8px); } .mantine-Modal-inner { @@ -661,6 +722,7 @@ html[dir='rtl'] [dir='ltr'] { @apply underline; } } + .tiptap { :first-child { margin-top: 0; @@ -671,14 +733,17 @@ html[dir='rtl'] [dir='ltr'] { border-radius: 0.4rem; box-decoration-break: clone; color: #ae8afc; + &::after { content: '\200B'; } } } + .blur-xs { filter: blur(4px); } + .blur-s { filter: blur(5px); } @@ -692,9 +757,11 @@ html[dir='rtl'] [dir='ltr'] { width: 100% !important; } } + .rm-bg .b2 { padding-top: 0 !important; } + .rm-bg .b1 { background: transparent !important; gap: 0 !important; @@ -712,6 +779,7 @@ html[dir='rtl'] [dir='ltr'] { 0% { transform: translateY(0); } + 100% { transform: translateY(-50%); } @@ -721,6 +789,7 @@ html[dir='rtl'] [dir='ltr'] { 0% { transform: translateY(-50%); } + 100% { transform: translateY(0%); } @@ -755,7 +824,8 @@ html[dir='rtl'] [dir='ltr'] { .btnSub:disabled .arrow-change { display: none !important; } -.btnSub:disabled + button { + +.btnSub:disabled+button { display: none !important; } @@ -768,8 +838,23 @@ html[dir='rtl'] [dir='ltr'] { } .w8-max { - width: calc(100% / 6); - max-width: calc(100% / 6); + width: 50%; + max-width: 50%; + + @media (min-width: 480px) { + width: 33.33%; + max-width: 33.33%; + } + + @media (min-width: 768px) { + width: 25%; + max-width: 25%; + } + + @media (min-width: 1024px) { + width: calc(100% / 6); + max-width: calc(100% / 6); + } } .withp3 { @@ -780,4 +865,260 @@ html[dir='rtl'] [dir='ltr'] { .forceChange .changeColor { background: var(--new-btn-primary) !important; color: #fff !important; +} + +// ========================================== +// RESPONSIVE IMPROVEMENTS +// ========================================== + +// Grid responsive for all screens +.grid { + width: 100%; + + @media (max-width: 1024px) { + grid-auto-flow: dense; + } +} + +// Calendar responsive (Month View) +.grid-cols-7 { + @media (max-width: 1024px) { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + @media (max-width: 768px) { + grid-template-columns: repeat(2, minmax(140px, 1fr)); + overflow-x: auto; + } +} + +// Modal responsive +.swal2-modal { + @media (max-width: 1024px) { + max-width: 95vw !important; + margin: 0 auto !important; + } + + @media (max-width: 768px) { + max-width: 100vw !important; + border-radius: 0 !important; + height: auto !important; + min-height: 80vh !important; + } +} + +// Scrollable containers responsive +.scrollbar { + &::-webkit-scrollbar { + width: 8px; + height: 8px; + + @media (max-width: 768px) { + width: 6px; + height: 6px; + } + } +} + +// Button responsive +button, +[role="button"] { + transition: all 0.2s ease-in-out; + + @media (hover: none) { + + // Mobile devices without hover + &:active { + transform: scale(0.98); + } + } +} + +// Input and form responsive +input, +textarea, +select { + font-size: 16px; // Prevent zoom on iOS + + @media (max-width: 768px) { + font-size: 14px; + } + + @media (max-width: 640px) { + font-size: 16px; // Keep 16px on mobile for iOS + } +} + +// Flex containers responsive helper +.flex-mobile-wrap { + @media (max-width: 768px) { + flex-wrap: wrap; + } +} + +// Tables responsive +.table1 { + @media (max-width: 768px) { + display: block; + border: none; + + thead { + display: none; + } + + tbody { + display: block; + + td { + display: block; + padding: 8px 0; + text-align: left; + + &:before { + content: attr(data-label); + font-weight: bold; + display: inline-block; + width: 120px; + margin-right: 8px; + } + } + } + + tr { + display: block; + margin-bottom: 16px; + border: 1px solid var(--color-table-border); + border-radius: 4px; + padding: 8px; + } + } +} + +// Vertical stacking on mobile +@media (max-width: 768px) { + .flex-col-mobile { + flex-direction: column; + } + + .gap-mobile { + gap: 12px; + } +} + +// Touch-friendly spacing +@media (hover: none) { + + // Increase tap target size on mobile + button, + [role="button"], + a, + input[type="checkbox"], + input[type="radio"] { + min-height: 44px; + min-width: 44px; + padding: max(8px, calc((44px - 1em) / 2)) 12px; + } +} + +// Overflow handling +.overflow-x-auto { + -webkit-overflow-scrolling: touch; + + @media (max-width: 768px) { + // Ensure proper overflow on mobile + max-width: 100vw; + margin-left: -12px; + margin-right: -12px; + padding-left: 12px; + padding-right: 12px; + } +} + +// Text responsiveness refinements +h1, +h2, +h3 { + letter-spacing: -0.02em; + + @media (max-width: 768px) { + margin-bottom: 0.5rem; + } +} + +// Calendar view responsive +.absolute { + &.bottom-\[100\%\] { + @media (max-width: 768px) { + bottom: auto !important; + top: 100% !important; + } + } +} + +// Prevent layout shift on scrollbar +html { + scrollbar-gutter: stable; +} + +// Disable zoom on iOS for input focus +input[type="text"], +input[type="email"], +input[type="password"], +textarea { + font-size: 16px !important; + + @media (max-width: 640px) { + font-size: 16px !important; // Prevent zoom + } +} + +// Modal responsive improvements +.swal2-modal { + &.swal2-modal { + @media (max-width: 640px) { + width: 100vw !important; + max-height: 100vh !important; + border-radius: 0 !important; + margin: 0 !important; + padding: 0 !important; + } + } +} + +// Scrollable with proper mobile support +.scrollbar { + scrollbar-width: thin; + scrollbar-color: var(--color-fifth) var(--new-bgColor); + + &::-webkit-scrollbar { + width: 8px; + height: 8px; + } + + &::-webkit-scrollbar-track { + background: var(--new-bgColor); + } + + &::-webkit-scrollbar-thumb { + background: var(--color-fifth); + border-radius: 4px; + + &:hover { + background: var(--color-sixth); + } + } +} + +// Calendar week grid responsive +.calendar-week-grid { + display: grid; + grid-template-columns: 80px repeat(7, minmax(150px, 1fr)); + + @media (min-width: 768px) { + grid-template-columns: 100px repeat(7, minmax(0, 1fr)); + } + + @media (min-width: 1280px) { + grid-template-columns: 136px repeat(7, minmax(0, 1fr)); + } } \ No newline at end of file diff --git a/apps/frontend/src/components/agents/agent.tsx b/apps/frontend/src/components/agents/agent.tsx index e4ca8b1f9..22e5f6ee8 100644 --- a/apps/frontend/src/components/agents/agent.tsx +++ b/apps/frontend/src/components/agents/agent.tsx @@ -43,7 +43,7 @@ export const MediaPortal: FC<{ const t = useT(); if (!waitForClass) return null; return ( -
+
{}} - onClose={() => {}} + onOpen={() => { }} + onClose={() => { }} />
); @@ -107,13 +107,13 @@ export const AgentList: FC<{ onChange: (arr: any[]) => void }> = ({ return (
-
-
-

+
+
+

{t('select_channels', 'Select Channels')}

void }> = ({
-
+
{sortedIntegrations.map((integration, index) => (
p.id === integration.id) && 'opacity-20' + 'flex gap-[10px] md:gap-[12px] items-center group/profile justify-center hover:bg-boxHover rounded-[8px] md:rounded-s-none md:rounded-e-[8px] hover:opacity-100 cursor-pointer px-4 md:px-0 py-2 md:py-0 bg-sixth md:bg-transparent min-w-fit md:min-w-0 transition-all', + !selected.some((p) => p.id === integration.id) && 'opacity-50 md:opacity-20', + selected.some((p) => p.id === integration.id) && 'bg-boxHover md:bg-transparent shadow-sm md:shadow-none' )} >
void }> = ({
)} -
+
= ({ children }) => { return ( - -
{children}
- +
+ +
{children}
+ +
); }; @@ -224,12 +227,11 @@ const Threads: FC = () => { return (
-
-
+
+
{
-
+ + {/* Mobile New Chat Button */} + + + + +
New Chat
+ + +
{data?.threads?.map((p: any) => (
-

+

{t('sign_in', 'Sign In')}

diff --git a/apps/frontend/src/components/auth/register.tsx b/apps/frontend/src/components/auth/register.tsx index 592c354e1..2ad98ae29 100644 --- a/apps/frontend/src/components/auth/register.tsx +++ b/apps/frontend/src/components/auth/register.tsx @@ -147,7 +147,7 @@ export function RegisterAfter({
-

+

{t('sign_up', 'Sign Up')}

diff --git a/apps/frontend/src/components/launches/add.provider.component.tsx b/apps/frontend/src/components/launches/add.provider.component.tsx index 6207ecf03..5ef2cf197 100644 --- a/apps/frontend/src/components/launches/add.provider.component.tsx +++ b/apps/frontend/src/components/launches/add.provider.component.tsx @@ -244,8 +244,8 @@ export const CustomVariables: FC<{ ...acc, ...(item.defaultValue ? { - [item.key]: item.defaultValue, - } + [item.key]: item.defaultValue, + } : {}), }), {} @@ -318,17 +318,17 @@ export const AddProviderComponent: FC<{ const modal = useModals(); const getSocialLink = useCallback( ( - identifier: string, - isExternal: boolean, - isWeb3: boolean, - customFields?: Array<{ - key: string; - label: string; - validation: string; - defaultValue?: string; - type: 'text' | 'password'; - }> - ) => + identifier: string, + isExternal: boolean, + isWeb3: boolean, + customFields?: Array<{ + key: string; + label: string; + validation: string; + defaultValue?: string; + type: 'text' | 'password'; + }> + ) => async () => { const onboardingParam = onboarding ? 'onboarding=true' : ''; const openWeb3 = async () => { @@ -362,7 +362,8 @@ export const AddProviderComponent: FC<{ ].filter(Boolean).join('&'); const { url, err } = await ( await fetch( - `/integrations/social/${identifier}${params ? `?${params}` : ''}` + `/integrations/social/${identifier}${externalUrl ? `?externalUrl=${externalUrl}` : `` + }` ) ).json(); if (err) { @@ -430,7 +431,7 @@ export const AddProviderComponent: FC<{ return (
-
+
{social.map((item) => (
@@ -469,7 +470,7 @@ export const AddProviderComponent: FC<{ viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg" - className="absolute top-[10px] end-[10px]" + className="absolute top-[5px] end-[5px]" > { }, [integrations, posts]); return ( -
-
- {options.map((option) => ( - -
- {newDayjs() - .utc() - .startOf('day') - .add(option[0].time, 'minute') - .local() - .format(isUSCitizen() ? 'hh:mm A' : 'LT')} -
-
- p.integration), - }} - > - +
+
+ {options.map((option) => ( +
+
+ + {newDayjs() + .utc() .startOf('day') .add(option[0].time, 'minute') - .local()} - /> - + .local() + .format(isUSCitizen() ? 'hh:mm A' : 'LT')} + +
+
+ p.integration), + }} + > + + +
- - ))} + ))} +
); @@ -201,47 +202,45 @@ export const WeekView = () => { }, [i18next.resolvedLanguage, startDate]); return ( -
-
-
-
+
+
+
+
{localizedDays.map((day, index) => (
-
- {day.name} +
+ {day.name.substring(0, 3)}
{day.day === newDayjs().format('L') && ( -
+
)} - {day.day} + {day.date.date()}
))} {hours.map((hour) => ( -
+
{convertTimeFormatBasedOnLocality(hour)}
{localizedDays.map((day, indexDay) => ( - -
- -
-
+ +
))}
))} @@ -300,21 +299,24 @@ export const MonthView = () => { }, [startDate]); return ( -
-
-
+
+
+
{localizedDays.map((day) => (
-
{day}
+
{day}
))} {calendarDays.map((date, index) => (
+ loadPost: Post & { + integration: Integration; + }, + isDuplicate?: boolean + ) => async () => { const post = { ...loadPost, @@ -480,16 +482,16 @@ export const CalendarColumn: FC<{ { - return { - image, - settings, - content, - }; - } - ), - } + onlyValues: data.posts.map( + ({ image, settings, content }: any) => { + return { + image, + settings, + content, + }; + } + ), + } : {})} allIntegrations={integrations.map((p) => ({ ...p, @@ -500,12 +502,12 @@ export const CalendarColumn: FC<{ isDuplicate ? integrations : integrations - .slice(0) - .filter((f) => f.id === data.integration) - .map((p) => ({ - ...p, - picture: data.integrationPicture, - })) + .slice(0) + .filter((f) => f.id === data.integration) + .map((p) => ({ + ...p, + picture: data.integrationPicture, + })) } date={publishDate} /> @@ -522,28 +524,28 @@ export const CalendarColumn: FC<{ const set: any = !sets.length ? undefined : await new Promise((resolve) => { - modal.openModal({ - title: t('select_set', 'Select a Set'), - closeOnClickOutside: true, - askClose: true, - closeOnEscape: true, - withCloseButton: true, - onClose: () => resolve('exit'), - children: ( - { - resolve(selectedSet); - modal.closeAll(); - }} - onContinueWithoutSet={() => { - resolve(undefined); - modal.closeAll(); - }} - /> - ), - }); + modal.openModal({ + title: t('select_set', 'Select a Set'), + closeOnClickOutside: true, + askClose: true, + closeOnEscape: true, + withCloseButton: true, + onClose: () => resolve('exit'), + children: ( + { + resolve(selectedSet); + modal.closeAll(); + }} + onContinueWithoutSet={() => { + resolve(undefined); + modal.closeAll(); + }} + /> + ), }); + }); if (set === 'exit') return; @@ -569,20 +571,20 @@ export const CalendarColumn: FC<{ mutate={reloadCalendarView} {...(signature?.id && !set ? { - onlyValues: [ - { - content: '\n' + signature.content, - }, - ], - } + onlyValues: [ + { + content: '\n' + signature.content, + }, + ], + } : {})} date={ randomHour ? getDate.hour(Math.floor(Math.random() * 24)) : getDate.format('YYYY-MM-DDTHH:mm:ss') === newDayjs().startOf('hour').format('YYYY-MM-DDTHH:mm:ss') - ? newDayjs().add(10, 'minute') - : getDate + ? newDayjs().add(10, 'minute') + : getDate } {...(set?.content ? { set: JSON.parse(set.content) } : {})} reopenModal={() => ({})} @@ -640,17 +642,17 @@ export const CalendarColumn: FC<{ return (
{display === 'month' && ( -
{getDate.date()}
+
+ {getDate.date()} +
)}
3 && (
{t('show_more', '+ Show more')} ({postList.length - 3}) @@ -703,7 +705,7 @@ export const CalendarColumn: FC<{ )} {showAll && postList.length > 3 && (
{t('show_less', '- Show less')} @@ -720,20 +722,25 @@ export const CalendarColumn: FC<{ display === ('month' as any) ? 'flex-1 min-h-[40px] w-full' : !postList.length - ? 'min-h-full w-full p-[5px]' - : 'min-h-[40px] w-full', + ? 'min-h-full w-full p-[5px]' + : 'min-h-[40px] w-full', 'flex items-center justify-center cursor-pointer pb-[2.5px]' )} > {display !== 'day' && (
+ className="w-8 h-8 rounded-full border border-dashed border-newTableBorder/40 flex items-center justify-center text-newTableBorder/40 group-hover/add:border-btnPrimary group-hover/add:bg-btnPrimary group-hover/add:text-white transition-all duration-300" + > + + + + +
)} {display === 'day' && ( @@ -844,7 +851,7 @@ const CalendarItem: FC<{ >
{post.tags.map((p) => p.tag.name).join(', ')}
-
- -
-
- -
{' '} - {((post.integration.providerIdentifier === 'x' && disableXAnalytics) || !post.releaseId) ? ( - <> - ) : ( +
- +
- )}{' '} -
+ +
+ {((post.integration.providerIdentifier === 'x' && disableXAnalytics) || !post.releaseId) ? null : ( +
+ +
)} - onClick={deletePost} - > - +
+ +
-
+
- +
+ +
-
-
- {state === 'DRAFT' ? t('draft', 'Draft') + ': ' : ''} +
+
+ {state === 'DRAFT' ? t('draft', 'Draft') : ''}
-
-
- {stripHtmlValidation('none', post.content, false, true, false) || - t('no_content', 'no content')} -
+
+
+ {stripHtmlValidation('none', post.content, false, true, false) || + t('no_content', 'no content')}
+
diff --git a/apps/frontend/src/components/launches/filters.tsx b/apps/frontend/src/components/launches/filters.tsx index 43332f122..130dde42f 100644 --- a/apps/frontend/src/components/launches/filters.tsx +++ b/apps/frontend/src/components/launches/filters.tsx @@ -225,12 +225,12 @@ export const Filters = () => { ); return ( -
-
-
+
+
+
{ />
-
-
+
+
{getDisplayText()}
{
-
-
-
- {t('today', 'Today')} -
-
+
+ {t('today', 'Today')}
- setCustomer(customer)} - integrations={calendar.integrations} - /> -
+
+ setCustomer(customer)} + integrations={calendar.integrations} + /> +
+
{
{
-
+
-
+
{date.format(isUSCitizen() ? 'MM/DD/YYYY hh:mm A' : 'DD/MM/YYYY HH:mm')}
{open && (
e.stopPropagation()} - className="animate-fadeIn absolute bottom-[100%] mb-[16px] start-[50%] -translate-x-[50%] bg-sixth border border-tableBorder text-textColor rounded-[16px] z-[300] p-[16px] flex flex-col" + className="animate-fadeIn absolute bottom-[100%] md:bottom-auto md:top-[100%] mb-[16px] md:mt-[16px] start-[50%] md:start-auto md:end-0 md:translate-x-0 -translate-x-[50%] bg-sixth border border-tableBorder text-textColor rounded-[16px] z-[300] p-[16px] flex flex-col max-w-[90vw] md:max-w-[400px] w-[calc(100vw-32px)] md:w-auto" > -
diff --git a/apps/frontend/src/components/launches/helpers/top.title.component.tsx b/apps/frontend/src/components/launches/helpers/top.title.component.tsx index 48624e60f..55bf32447 100644 --- a/apps/frontend/src/components/launches/helpers/top.title.component.tsx +++ b/apps/frontend/src/components/launches/helpers/top.title.component.tsx @@ -31,11 +31,11 @@ export const TopTitle: FC<{ return (
-
+
{!removeTitle && (
{translatedTitle} diff --git a/apps/frontend/src/components/launches/information.component.tsx b/apps/frontend/src/components/launches/information.component.tsx index b65acfa72..8dad34486 100644 --- a/apps/frontend/src/components/launches/information.component.tsx +++ b/apps/frontend/src/components/launches/information.component.tsx @@ -142,15 +142,16 @@ export const InformationComponent: FC<{ {((isGlobal && selectedIntegrations.length) || !isValid) && (