parent
a5874bd057
commit
45a7aad669
9 changed files with 422 additions and 5 deletions
@ -0,0 +1,41 @@ |
|||||||
|
--- |
||||||
|
import Icon from "./Icon.astro"; |
||||||
|
|
||||||
|
export interface Props { |
||||||
|
roadmapUrl: string; |
||||||
|
} |
||||||
|
|
||||||
|
const { roadmapUrl } = Astro.props; |
||||||
|
--- |
||||||
|
|
||||||
|
<!-- Desktop: Roadmap Resources - Alert --> |
||||||
|
<div |
||||||
|
class="hidden sm:flex justify-between mb-0 sm:-mb-16 mt-7 px-2 bg-white border rounded-md items-center" |
||||||
|
> |
||||||
|
<p class="text-sm"> |
||||||
|
<span |
||||||
|
class="text-yellow-900 bg-yellow-200 py-0.5 px-1 text-xs rounded-sm font-medium uppercase mr-0.5" |
||||||
|
>New</span |
||||||
|
> |
||||||
|
Resources are here, try clicking nodes |
||||||
|
</p> |
||||||
|
|
||||||
|
<a |
||||||
|
href={`${roadmapUrl}/topics`} |
||||||
|
class="inline-flex items-center justify-center py-1.5 text-sm font-medium rounded-md hover:text-black text-gray-500 px-1" |
||||||
|
> |
||||||
|
<Icon icon="search" /> |
||||||
|
<span class="ml-2">Search Topics</span> |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- Mobile - Roadmap resources alert --> |
||||||
|
<p |
||||||
|
class="block sm:hidden text-sm border border-yellow-500 text-yellow-700 rounded-md py-1.5 px-2 bg-white mt-5 relative" |
||||||
|
> |
||||||
|
We have added resources. Try clicking roadmap nodes or visit{" "} |
||||||
|
<a href={`${roadmapUrl}/topics`} class="text-blue-700 underline"> |
||||||
|
resources list |
||||||
|
</a> |
||||||
|
. |
||||||
|
</p> |
@ -0,0 +1,106 @@ |
|||||||
|
--- |
||||||
|
import Icon from "./Icon.astro"; |
||||||
|
import ResourcesAlert from "./ResourcesAlert.astro"; |
||||||
|
import TopicSearch from "./TopicSearch.astro"; |
||||||
|
import YouTubeAlert from "./YouTubeAlert.astro"; |
||||||
|
|
||||||
|
export interface Props { |
||||||
|
title: string; |
||||||
|
description: string; |
||||||
|
roadmapUrl: string; |
||||||
|
isUpcoming?: boolean; |
||||||
|
hasSearch?: boolean; |
||||||
|
hasTopics?: boolean; |
||||||
|
} |
||||||
|
|
||||||
|
const { |
||||||
|
title, |
||||||
|
description, |
||||||
|
roadmapUrl, |
||||||
|
isUpcoming = false, |
||||||
|
hasSearch = false, |
||||||
|
hasTopics = true, |
||||||
|
} = Astro.props; |
||||||
|
|
||||||
|
const isRoadmapReady = !isUpcoming; |
||||||
|
--- |
||||||
|
|
||||||
|
<div class="border-b"> |
||||||
|
<div class="py-5 sm:py-12 container relative"> |
||||||
|
<YouTubeAlert /> |
||||||
|
|
||||||
|
<div class="mt-0 mb-3 sm:mb-6 sm:mt-4"> |
||||||
|
<h1 class="text-2xl sm:text-4xl mb-0.5 sm:mb-2 font-bold"> |
||||||
|
{title} |
||||||
|
</h1> |
||||||
|
<p class="text-gray-500 text-sm sm:text-lg">{description}</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="flex justify-between"> |
||||||
|
<div class="flex gap-1 sm:gap-2"> |
||||||
|
{ |
||||||
|
!hasSearch && ( |
||||||
|
<> |
||||||
|
<a href='/roadmaps' class='bg-gray-500 py-1.5 px-3 rounded-md text-white text-xs sm:text-sm font-medium hover:bg-gray-600' aria-label="Back to All Roadmaps"> |
||||||
|
←<span class='hidden sm:inline'> All Roadmaps</span> |
||||||
|
</a> |
||||||
|
|
||||||
|
{isRoadmapReady && ( |
||||||
|
<button |
||||||
|
data-modal="download-popup" |
||||||
|
class="inline-flex items-center justify-center bg-yellow-400 py-1.5 px-3 text-xs sm:text-sm font-medium rounded-md hover:bg-yellow-500" |
||||||
|
aria-label="Download Roadmap" |
||||||
|
> |
||||||
|
<Icon icon="download" /> |
||||||
|
<span class="hidden sm:inline ml-2">Download</span> |
||||||
|
</button> |
||||||
|
)} |
||||||
|
|
||||||
|
<button |
||||||
|
data-modal="subscribe-popup" |
||||||
|
class="inline-flex items-center justify-center bg-yellow-400 py-1.5 px-3 text-xs sm:text-sm font-medium rounded-md hover:bg-yellow-500" |
||||||
|
aria-label="Subscribe for Updates" |
||||||
|
> |
||||||
|
<Icon icon="email" /> |
||||||
|
<span class="ml-2">Subscribe</span> |
||||||
|
</button> |
||||||
|
</> |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
{ |
||||||
|
hasSearch && ( |
||||||
|
<a |
||||||
|
href={roadmapUrl} |
||||||
|
class="bg-gray-500 py-1.5 px-3 rounded-md text-white text-xs sm:text-sm font-medium hover:bg-gray-600" |
||||||
|
aria-label="Back to Visual Roadmap" |
||||||
|
> |
||||||
|
← |
||||||
|
<span class="inline"> Visual Roadmap</span> |
||||||
|
</a> |
||||||
|
) |
||||||
|
} |
||||||
|
</div> |
||||||
|
|
||||||
|
{ |
||||||
|
isRoadmapReady && ( |
||||||
|
<a |
||||||
|
href={`https://github.com/kamranahmedse/developer-roadmap/issues/new?title=[Suggestion] ${title}`} |
||||||
|
target="_blank" |
||||||
|
class="inline-flex items-center justify-center bg-gray-500 text-white py-1.5 px-3 text-xs sm:text-sm font-medium rounded-md hover:bg-gray-600" |
||||||
|
aria-label="Suggest Changes" |
||||||
|
> |
||||||
|
<Icon icon="comment" /> |
||||||
|
<span class="ml-2 hidden sm:inline">Suggest Changes</span> |
||||||
|
<span class="ml-2 inline sm:hidden">Suggest</span> |
||||||
|
</a> |
||||||
|
) |
||||||
|
} |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- Desktop: Roadmap Resources - Alert --> |
||||||
|
{hasTopics && <ResourcesAlert roadmapUrl={roadmapUrl} />} |
||||||
|
|
||||||
|
{hasSearch && <TopicSearch />} |
||||||
|
</div> |
||||||
|
</div> |
@ -0,0 +1,19 @@ |
|||||||
|
--- |
||||||
|
import Icon from "./Icon.astro"; |
||||||
|
--- |
||||||
|
|
||||||
|
<div class="sm:-mb-[68px] mt-5 sm:mt-6 relative"> |
||||||
|
<input |
||||||
|
autofocus |
||||||
|
type="text" |
||||||
|
id="search-topic-input" |
||||||
|
class="border border-gray-300 text-gray-900 text-sm sm:text-md rounded-md focus:ring-blue-500 focus:border-blue-500 block w-full px-2.5 sm:px-3 py-2" |
||||||
|
placeholder="Search for a topic" |
||||||
|
/> |
||||||
|
|
||||||
|
<span |
||||||
|
class="absolute top-1/2 -translate-y-1/2 right-4 flex items-center text-sm text-gray-500" |
||||||
|
> |
||||||
|
<Icon icon="search" /> |
||||||
|
</span> |
||||||
|
</div> |
@ -0,0 +1,12 @@ |
|||||||
|
<a |
||||||
|
href="https://youtube.com/theroadmap?sub_confirmation=1" |
||||||
|
target="_blank" |
||||||
|
class="text-md hidden sm:flex items-center text-red-600 group hover:text-red-900" |
||||||
|
> |
||||||
|
<span |
||||||
|
class="bg-red-600 group-hover:bg-red-800 group-hover: px-1.5 py-0.5 rounded-sm text-white text-xs uppercase font-medium mr-2" |
||||||
|
>New</span |
||||||
|
> |
||||||
|
<span class="underline mr-1">Roadmap topics to be covered on YouTube</span> |
||||||
|
<span>»</span> |
||||||
|
</a> |
Loading…
Reference in new issue