mirror of
https://github.com/AustinKelsay/plebdevs.git
synced 2025-06-23 16:05:24 +00:00
Mobile style fixes
This commit is contained in:
parent
5bb89c4c35
commit
365b54c498
@ -11,13 +11,13 @@ const BottomBar = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='min-bottom-bar:hidden fixed bottom-0 left-0 right-0 bg-gray-800 p-2 flex justify-around items-center z-20 border-t-2 border-gray-700'>
|
<div className='min-bottom-bar:hidden fixed bottom-0 left-0 right-0 bg-gray-800 p-2 flex justify-around items-center z-20 border-t-2 border-gray-700'>
|
||||||
<div onClick={() => router.push('/')} className={`hover:bg-gray-700 cursor-pointer px-4 py-3 rounded-lg ${isActive('/') ? 'bg-gray-700' : ''}`}>
|
<div onClick={() => router.push('/')} className={`hover:bg-gray-700 cursor-pointer px-4 py-2 rounded-lg ${isActive('/') ? 'bg-gray-700' : ''}`}>
|
||||||
<i className="pi pi-home text-2xl" />
|
<i className="pi pi-home text-2xl" />
|
||||||
</div>
|
</div>
|
||||||
<div onClick={() => router.push('/content?tag=all')} className={`hover:bg-gray-700 cursor-pointer px-4 py-3 rounded-lg ${isActive('/content') ? 'bg-gray-700' : ''}`}>
|
<div onClick={() => router.push('/content?tag=all')} className={`hover:bg-gray-700 cursor-pointer px-4 py-2 rounded-lg ${isActive('/content') ? 'bg-gray-700' : ''}`}>
|
||||||
<i className="pi pi-play-circle text-2xl" />
|
<i className="pi pi-play-circle text-2xl" />
|
||||||
</div>
|
</div>
|
||||||
<div onClick={() => router.push('/feed?channel=global')} className={`hover:bg-gray-700 cursor-pointer px-4 py-3 rounded-lg ${isActive('/feed') ? 'bg-gray-700' : ''}`}>
|
<div onClick={() => router.push('/feed?channel=global')} className={`hover:bg-gray-700 cursor-pointer px-4 py-2 rounded-lg ${isActive('/feed') ? 'bg-gray-700' : ''}`}>
|
||||||
<i className="pi pi-comments text-2xl" />
|
<i className="pi pi-comments text-2xl" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
import React, { useState, useEffect, use } from 'react';
|
import React, { useState, useEffect, use } from 'react';
|
||||||
import { Carousel } from 'primereact/carousel';
|
import { Carousel } from 'primereact/carousel';
|
||||||
import { parseCourseEvent } from '@/utils/nostr';
|
import { parseCourseEvent } from '@/utils/nostr';
|
||||||
// import CourseTemplate from '@/components/content/carousels/templates/CourseTemplate';
|
|
||||||
import { CourseTemplate } from '@/components/content/carousels/templates/CourseTemplate';
|
import { CourseTemplate } from '@/components/content/carousels/templates/CourseTemplate';
|
||||||
import TemplateSkeleton from '@/components/content/carousels/skeletons/TemplateSkeleton';
|
import TemplateSkeleton from '@/components/content/carousels/skeletons/TemplateSkeleton';
|
||||||
import { useCourses } from '@/hooks/nostr/useCourses';
|
import { useCourses } from '@/hooks/nostr/useCourses';
|
||||||
|
import useWindowWidth from '@/hooks/useWindowWidth';
|
||||||
|
import { Divider } from 'primereact/divider';
|
||||||
const responsiveOptions = [
|
const responsiveOptions = [
|
||||||
{
|
{
|
||||||
breakpoint: '3000px',
|
breakpoint: '3000px',
|
||||||
@ -27,6 +27,8 @@ const responsiveOptions = [
|
|||||||
export default function CoursesCarousel() {
|
export default function CoursesCarousel() {
|
||||||
const [processedCourses, setProcessedCourses] = useState([]);
|
const [processedCourses, setProcessedCourses] = useState([]);
|
||||||
const { courses, coursesLoading, coursesError } = useCourses()
|
const { courses, coursesLoading, coursesError } = useCourses()
|
||||||
|
const windowWidth = useWindowWidth();
|
||||||
|
const isMobileView = windowWidth <= 450;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetch = async () => {
|
const fetch = async () => {
|
||||||
@ -56,11 +58,20 @@ export default function CoursesCarousel() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<h3 className="ml-[6%] mt-4">Courses</h3>
|
<h3 className={`ml-[6%] mt-4 max-mob:text-3xl max-mob:ml-10`}>Courses</h3>
|
||||||
|
<Divider className={`${isMobileView ? '' : 'hidden'}`} />
|
||||||
<div className={"min-h-[384px]"}>
|
<div className={"min-h-[384px]"}>
|
||||||
<Carousel
|
<Carousel
|
||||||
value={coursesLoading || !processedCourses.length ? [{}, {}, {}] : [...processedCourses]}
|
value={coursesLoading || !processedCourses.length ? [{}, {}, {}] : [...processedCourses]}
|
||||||
numVisible={2}
|
numVisible={2}
|
||||||
|
pt={{
|
||||||
|
previousButton: {
|
||||||
|
className: isMobileView ? 'm-0' : ''
|
||||||
|
},
|
||||||
|
nextButton: {
|
||||||
|
className: isMobileView ? 'm-0' : ''
|
||||||
|
}
|
||||||
|
}}
|
||||||
itemTemplate={(item) =>
|
itemTemplate={(item) =>
|
||||||
!processedCourses.length ?
|
!processedCourses.length ?
|
||||||
<TemplateSkeleton key={Math.random()} /> :
|
<TemplateSkeleton key={Math.random()} /> :
|
||||||
|
@ -4,7 +4,8 @@ import { parseEvent } from '@/utils/nostr';
|
|||||||
import { DocumentTemplate } from '@/components/content/carousels/templates/DocumentTemplate';
|
import { DocumentTemplate } from '@/components/content/carousels/templates/DocumentTemplate';
|
||||||
import TemplateSkeleton from '@/components/content/carousels/skeletons/TemplateSkeleton';
|
import TemplateSkeleton from '@/components/content/carousels/skeletons/TemplateSkeleton';
|
||||||
import { useDocuments } from '@/hooks/nostr/useDocuments';
|
import { useDocuments } from '@/hooks/nostr/useDocuments';
|
||||||
|
import useWindowWidth from '@/hooks/useWindowWidth';
|
||||||
|
import { Divider } from 'primereact/divider';
|
||||||
const responsiveOptions = [
|
const responsiveOptions = [
|
||||||
{
|
{
|
||||||
breakpoint: '3000px',
|
breakpoint: '3000px',
|
||||||
@ -26,6 +27,8 @@ const responsiveOptions = [
|
|||||||
export default function DocumentsCarousel() {
|
export default function DocumentsCarousel() {
|
||||||
const [processedDocuments, setProcessedDocuments] = useState([]);
|
const [processedDocuments, setProcessedDocuments] = useState([]);
|
||||||
const { documents, documentsLoading, documentsError } = useDocuments()
|
const { documents, documentsLoading, documentsError } = useDocuments()
|
||||||
|
const windowWidth = useWindowWidth();
|
||||||
|
const isMobileView = windowWidth <= 450;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetch = async () => {
|
const fetch = async () => {
|
||||||
@ -53,10 +56,19 @@ export default function DocumentsCarousel() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<h3 className="ml-[6%] mt-4">Documents</h3>
|
<h3 className={`ml-[6%] mt-4 max-mob:text-3xl max-mob:ml-10`}>Documents</h3>
|
||||||
|
<Divider className={`${isMobileView ? '' : 'hidden'}`} />
|
||||||
<Carousel
|
<Carousel
|
||||||
value={documentsLoading || !processedDocuments.length ? [{}, {}, {}] : [...processedDocuments]}
|
value={documentsLoading || !processedDocuments.length ? [{}, {}, {}] : [...processedDocuments]}
|
||||||
numVisible={2}
|
numVisible={2}
|
||||||
|
pt={{
|
||||||
|
previousButton: {
|
||||||
|
className: isMobileView ? 'm-0' : ''
|
||||||
|
},
|
||||||
|
nextButton: {
|
||||||
|
className: isMobileView ? 'm-0' : ''
|
||||||
|
}
|
||||||
|
}}
|
||||||
itemTemplate={(item) =>
|
itemTemplate={(item) =>
|
||||||
processedDocuments.length > 0 ?
|
processedDocuments.length > 0 ?
|
||||||
<DocumentTemplate key={item.id} document={item} /> :
|
<DocumentTemplate key={item.id} document={item} /> :
|
||||||
|
@ -87,11 +87,10 @@ const InteractivePromotionalCarousel = () => {
|
|||||||
switch (selectedPromotion.category) {
|
switch (selectedPromotion.category) {
|
||||||
case "PLEBDEVS":
|
case "PLEBDEVS":
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="flex flex-row gap-2">
|
||||||
<GenericButton onClick={() => router.push('/about')} severity="success" icon={<i className="pi pi-question-circle pr-2 pb-[2px]" />} label="Learn More" className="w-fit py-2 font-semibold" size="small" outlined />
|
|
||||||
<GenericButton onClick={() => router.push('/subscribe')} severity="warning" icon={<i className="pi pi-star pr-2 pb-1" />} label="Subscribe" className="w-fit py-2 font-semibold" size="small" outlined />
|
<GenericButton onClick={() => router.push('/subscribe')} severity="warning" icon={<i className="pi pi-star pr-2 pb-1" />} label="Subscribe" className="w-fit py-2 font-semibold" size="small" outlined />
|
||||||
<GenericButton onClick={() => router.push('/content?tag=all')} severity="primary" icon={<i className="pi pi-eye pr-2" />} label="View all content" className="w-fit py-2 font-semibold" size="small" outlined />
|
<GenericButton onClick={() => router.push('/content?tag=all')} severity="primary" icon={<i className="pi pi-eye pr-2" />} label="View all content" className="w-fit py-2 font-semibold" size="small" outlined />
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
case "COURSES":
|
case "COURSES":
|
||||||
return (
|
return (
|
||||||
|
@ -4,6 +4,8 @@ import { parseEvent } from '@/utils/nostr';
|
|||||||
import {VideoTemplate} from '@/components/content/carousels/templates/VideoTemplate';
|
import {VideoTemplate} from '@/components/content/carousels/templates/VideoTemplate';
|
||||||
import TemplateSkeleton from '@/components/content/carousels/skeletons/TemplateSkeleton';
|
import TemplateSkeleton from '@/components/content/carousels/skeletons/TemplateSkeleton';
|
||||||
import { useVideos } from '@/hooks/nostr/useVideos';
|
import { useVideos } from '@/hooks/nostr/useVideos';
|
||||||
|
import useWindowWidth from '@/hooks/useWindowWidth';
|
||||||
|
import { Divider } from 'primereact/divider';
|
||||||
|
|
||||||
const responsiveOptions = [
|
const responsiveOptions = [
|
||||||
{
|
{
|
||||||
@ -26,6 +28,8 @@ const responsiveOptions = [
|
|||||||
export default function VideosCarousel() {
|
export default function VideosCarousel() {
|
||||||
const [processedVideos, setProcessedVideos] = useState([]);
|
const [processedVideos, setProcessedVideos] = useState([]);
|
||||||
const { videos, videosLoading, videosError } = useVideos();
|
const { videos, videosLoading, videosError } = useVideos();
|
||||||
|
const windowWidth = useWindowWidth();
|
||||||
|
const isMobileView = windowWidth <= 450;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetch = async () => {
|
const fetch = async () => {
|
||||||
@ -51,10 +55,19 @@ export default function VideosCarousel() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<h3 className="ml-[6%] mt-4">Videos</h3>
|
<h3 className={`ml-[6%] mt-4 max-mob:text-3xl max-mob:ml-10`}>Videos</h3>
|
||||||
|
<Divider className={`${isMobileView ? '' : 'hidden'}`} />
|
||||||
<Carousel
|
<Carousel
|
||||||
value={videosLoading || !processedVideos.length ? [{}, {}, {}] : [...processedVideos]}
|
value={videosLoading || !processedVideos.length ? [{}, {}, {}] : [...processedVideos]}
|
||||||
numVisible={2}
|
numVisible={2}
|
||||||
|
pt={{
|
||||||
|
previousButton: {
|
||||||
|
className: isMobileView ? 'm-0' : ''
|
||||||
|
},
|
||||||
|
nextButton: {
|
||||||
|
className: isMobileView ? 'm-0' : ''
|
||||||
|
}
|
||||||
|
}}
|
||||||
itemTemplate={(item) =>
|
itemTemplate={(item) =>
|
||||||
!processedVideos.length ?
|
!processedVideos.length ?
|
||||||
<TemplateSkeleton key={Math.random()} /> :
|
<TemplateSkeleton key={Math.random()} /> :
|
||||||
|
@ -122,9 +122,9 @@ export default function CourseDetailsNew({ processedEvent, paidCourse, lessons,
|
|||||||
/>
|
/>
|
||||||
<div className="absolute inset-0 bg-black bg-opacity-20"></div>
|
<div className="absolute inset-0 bg-black bg-opacity-20"></div>
|
||||||
</div>
|
</div>
|
||||||
<div className="w-full mx-auto px-4 py-8 -mt-32 relative z-10">
|
<div className="w-full mx-auto px-4 py-8 -mt-32 relative z-10 max-mob:px-0 max-tab:px-0">
|
||||||
<i className={`pi pi-arrow-left cursor-pointer hover:opacity-75 absolute top-0 left-4`} onClick={() => router.push('/')} />
|
<i className={`pi pi-arrow-left cursor-pointer hover:opacity-75 absolute top-0 left-4`} onClick={() => router.push('/')} />
|
||||||
<div className="mb-8 bg-gray-800/90 rounded-lg p-4">
|
<div className="mb-8 bg-gray-800/70 rounded-lg p-4 max-mob:rounded-t-none max-tab:rounded-t-none">
|
||||||
<div className="flex flex-row items-center justify-between w-full">
|
<div className="flex flex-row items-center justify-between w-full">
|
||||||
<h1 className='text-4xl font-bold text-white'>{processedEvent.name}</h1>
|
<h1 className='text-4xl font-bold text-white'>{processedEvent.name}</h1>
|
||||||
<div className="flex flex-wrap gap-2">
|
<div className="flex flex-wrap gap-2">
|
||||||
@ -135,7 +135,7 @@ export default function CourseDetailsNew({ processedEvent, paidCourse, lessons,
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p className='text-xl text-gray-200 mb-4 mt-4'>{processedEvent.description && (
|
<p className='text-xl text-gray-200 mb-4 mt-4 max-mob:text-base'>{processedEvent.description && (
|
||||||
<div className='mt-4'>
|
<div className='mt-4'>
|
||||||
{processedEvent.description.split('\n').map((line, index) => (
|
{processedEvent.description.split('\n').map((line, index) => (
|
||||||
<p key={index}>{line}</p>
|
<p key={index}>{line}</p>
|
||||||
|
@ -79,7 +79,7 @@ const DocumentLesson = ({ lesson, course, decryptionPerformed, isPaid }) => {
|
|||||||
<div className="absolute inset-0 bg-black bg-opacity-20"></div>
|
<div className="absolute inset-0 bg-black bg-opacity-20"></div>
|
||||||
</div>
|
</div>
|
||||||
<div className="w-full mx-auto px-4 py-8 -mt-32 relative z-10">
|
<div className="w-full mx-auto px-4 py-8 -mt-32 relative z-10">
|
||||||
<div className="mb-8 bg-gray-800/90 rounded-lg p-4">
|
<div className="mb-8 bg-gray-800/70 rounded-lg p-4">
|
||||||
<div className="flex flex-row items-center justify-between w-full">
|
<div className="flex flex-row items-center justify-between w-full">
|
||||||
<h1 className='text-3xl font-bold text-white'>{lesson.title}</h1>
|
<h1 className='text-3xl font-bold text-white'>{lesson.title}</h1>
|
||||||
<div className="flex flex-wrap gap-2">
|
<div className="flex flex-wrap gap-2">
|
||||||
|
@ -124,8 +124,8 @@ const DocumentDetails = ({ processedEvent, topics, title, summary, image, price,
|
|||||||
/>
|
/>
|
||||||
<div className="absolute inset-0 bg-black bg-opacity-20"></div>
|
<div className="absolute inset-0 bg-black bg-opacity-20"></div>
|
||||||
</div>
|
</div>
|
||||||
<div className="w-full mx-auto px-4 py-8 -mt-32 relative z-10">
|
<div className="w-full mx-auto px-4 py-8 -mt-32 relative z-10 max-mob:px-0 max-tab:px-0">
|
||||||
<div className="mb-8 bg-gray-800/90 rounded-lg p-4">
|
<div className="mb-8 bg-gray-800/70 rounded-lg p-4 max-mob:rounded-t-none max-tab:rounded-t-none">
|
||||||
<div className="flex flex-row items-center justify-between w-full">
|
<div className="flex flex-row items-center justify-between w-full">
|
||||||
<h1 className='text-4xl font-bold text-white'>{title}</h1>
|
<h1 className='text-4xl font-bold text-white'>{title}</h1>
|
||||||
<div className="flex flex-wrap gap-2">
|
<div className="flex flex-wrap gap-2">
|
||||||
|
@ -110,7 +110,7 @@ const VideoDetails = ({ processedEvent, topics, title, summary, image, price, au
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (processedEvent?.content) {
|
if (processedEvent?.content) {
|
||||||
return <MDDisplay className='p-4 rounded-lg w-full' source={processedEvent.content} />;
|
return <MDDisplay className='p-0 rounded-lg w-full' source={processedEvent.content} />;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -118,7 +118,7 @@ const VideoDetails = ({ processedEvent, topics, title, summary, image, price, au
|
|||||||
return (
|
return (
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
{renderContent()}
|
{renderContent()}
|
||||||
<div className="bg-gray-800/90 rounded-lg p-4 m-4">
|
<div className="bg-gray-800/90 rounded-lg p-4 m-4 max-mob:m-0 max-tab:m-0 max-mob:rounded-t-none max-tab:rounded-t-none">
|
||||||
<div className="w-full flex flex-col items-start justify-start mt-2 px-2">
|
<div className="w-full flex flex-col items-start justify-start mt-2 px-2">
|
||||||
<div className="flex flex-row items-center gap-2 w-full">
|
<div className="flex flex-row items-center gap-2 w-full">
|
||||||
<h1 className='text-4xl'>{title}</h1>
|
<h1 className='text-4xl'>{title}</h1>
|
||||||
@ -131,7 +131,7 @@ const VideoDetails = ({ processedEvent, topics, title, summary, image, price, au
|
|||||||
</div>
|
</div>
|
||||||
<div className='flex flex-row items-center justify-between w-full'>
|
<div className='flex flex-row items-center justify-between w-full'>
|
||||||
<p className='text-xl mt-4'>{summary && (
|
<p className='text-xl mt-4'>{summary && (
|
||||||
<div className="text-xl mt-4">
|
<div className="text-xl mt-4 max-mob:text-base max-tab:text-base">
|
||||||
{summary.split('\n').map((line, index) => (
|
{summary.split('\n').map((line, index) => (
|
||||||
<p key={index}>{line}</p>
|
<p key={index}>{line}</p>
|
||||||
))}
|
))}
|
||||||
|
@ -8,7 +8,7 @@ import { useToast } from '@/hooks/useToast';
|
|||||||
|
|
||||||
const MessageInput = ({ onMessageSent }) => {
|
const MessageInput = ({ onMessageSent }) => {
|
||||||
const [message, setMessage] = useState('');
|
const [message, setMessage] = useState('');
|
||||||
const [collapsed, setCollapsed] = useState(false);
|
const [collapsed, setCollapsed] = useState(true);
|
||||||
const { ndk, addSigner } = useNDKContext();
|
const { ndk, addSigner } = useNDKContext();
|
||||||
const { showToast } = useToast();
|
const { showToast } = useToast();
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ const CommunityMenuTab = ({ selectedTopic, onTabChange }) => {
|
|||||||
activeIndex={allItems.indexOf(selectedTopic)}
|
activeIndex={allItems.indexOf(selectedTopic)}
|
||||||
onTabChange={(e) => onTabChange(allItems[e.index])}
|
onTabChange={(e) => onTabChange(allItems[e.index])}
|
||||||
pt={{
|
pt={{
|
||||||
menu: { className: 'bg-transparent border-none ml-2 my-4' },
|
menu: { className: 'bg-transparent border-none ml-2 my-4 py-1' },
|
||||||
action: ({ context, parent }) => ({
|
action: ({ context, parent }) => ({
|
||||||
className: 'cursor-pointer select-none flex items-center relative no-underline overflow-hidden border-b-2 p-2 font-bold rounded-t-lg',
|
className: 'cursor-pointer select-none flex items-center relative no-underline overflow-hidden border-b-2 p-2 font-bold rounded-t-lg',
|
||||||
style: { top: '2px' }
|
style: { top: '2px' }
|
||||||
|
@ -168,7 +168,7 @@ const UserSettings = () => {
|
|||||||
{nip19.npubEncode(user.pubkey)} <i className="pi pi-question-circle text-xl pubkey-tooltip" />
|
{nip19.npubEncode(user.pubkey)} <i className="pi pi-question-circle text-xl pubkey-tooltip" />
|
||||||
</h2>
|
</h2>
|
||||||
<div className="flex flex-col w-1/2 mx-auto my-8 mb-12 justify-between items-center">
|
<div className="flex flex-col w-1/2 mx-auto my-8 mb-12 justify-between items-center">
|
||||||
<h2 className="text-xl my-2">Connect Your Lightning Wallet</h2>
|
<h2 className="text-xl my-2 max-mob:text-base max-tab:text-base">Connect Your Lightning Wallet</h2>
|
||||||
<BitcoinConnectButton />
|
<BitcoinConnectButton />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -15,6 +15,7 @@ export const defaultRelayUrls = [
|
|||||||
"wss://nostr21.com/",
|
"wss://nostr21.com/",
|
||||||
"wss://nostrue.com/",
|
"wss://nostrue.com/",
|
||||||
"wss://purplerelay.com/",
|
"wss://purplerelay.com/",
|
||||||
|
// "wss://relay.devs.tools/"
|
||||||
];
|
];
|
||||||
|
|
||||||
export const NDKProvider = ({ children }) => {
|
export const NDKProvider = ({ children }) => {
|
||||||
|
@ -53,7 +53,7 @@ const MenuTab = ({ items, selectedTopic, onTabChange }) => {
|
|||||||
activeIndex={allItems.indexOf(selectedTopic)}
|
activeIndex={allItems.indexOf(selectedTopic)}
|
||||||
onTabChange={(e) => onTabChange(allItems[e.index])}
|
onTabChange={(e) => onTabChange(allItems[e.index])}
|
||||||
pt={{
|
pt={{
|
||||||
menu: { className: 'bg-transparent border-none ml-2 my-4' },
|
menu: { className: 'bg-transparent border-none ml-2 my-4 py-1' },
|
||||||
action: ({ context, parent }) => ({
|
action: ({ context, parent }) => ({
|
||||||
className: 'cursor-pointer select-none flex items-center relative no-underline overflow-hidden border-b-2 p-2 font-bold rounded-t-lg',
|
className: 'cursor-pointer select-none flex items-center relative no-underline overflow-hidden border-b-2 p-2 font-bold rounded-t-lg',
|
||||||
style: { top: '2px' }
|
style: { top: '2px' }
|
||||||
|
@ -213,7 +213,7 @@ const Course = () => {
|
|||||||
<Accordion
|
<Accordion
|
||||||
activeIndex={expandedIndex}
|
activeIndex={expandedIndex}
|
||||||
onTabChange={handleAccordionChange}
|
onTabChange={handleAccordionChange}
|
||||||
className="mt-4 px-4"
|
className="mt-4 px-4 max-mob:px-0 max-tab:px-0"
|
||||||
>
|
>
|
||||||
{uniqueLessons.length > 0 && uniqueLessons.map((lesson, index) => (
|
{uniqueLessons.length > 0 && uniqueLessons.map((lesson, index) => (
|
||||||
<AccordionTab
|
<AccordionTab
|
||||||
@ -222,7 +222,7 @@ const Course = () => {
|
|||||||
root: { className: 'border-none' },
|
root: { className: 'border-none' },
|
||||||
header: { className: 'border-none' },
|
header: { className: 'border-none' },
|
||||||
headerAction: { className: 'border-none' },
|
headerAction: { className: 'border-none' },
|
||||||
content: { className: 'border-none' },
|
content: { className: 'border-none max-mob:px-0 max-tab:px-0' },
|
||||||
accordiontab: { className: 'border-none' },
|
accordiontab: { className: 'border-none' },
|
||||||
}}
|
}}
|
||||||
header={
|
header={
|
||||||
|
@ -50,10 +50,6 @@ const Feed = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMessageSent = () => {
|
|
||||||
setIsMessageInputCollapsed(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="bg-gray-900 h-[100vh] w-[100vw] min-bottom-bar:w-[86vw]">
|
<div className="bg-gray-900 h-[100vh] w-[100vw] min-bottom-bar:w-[86vw]">
|
||||||
<div className="w-[100vw] min-bottom-bar:w-[86vw] px-4 pt-4 flex flex-col items-start">
|
<div className="w-[100vw] min-bottom-bar:w-[86vw] px-4 pt-4 flex flex-col items-start">
|
||||||
@ -84,7 +80,7 @@ const Feed = () => {
|
|||||||
<Divider />
|
<Divider />
|
||||||
<MessageInput
|
<MessageInput
|
||||||
collapsed={false}
|
collapsed={false}
|
||||||
onMessageSent={handleMessageSent}
|
// onMessageSent={handleMessageSent}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="min-bottom-bar:hidden">
|
<div className="min-bottom-bar:hidden">
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
body {
|
body {
|
||||||
@apply font-blinker;
|
@apply font-blinker;
|
||||||
|
background-color: #201c24;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user