Onboarding improvements (#76)

* Disabled pro modal during onboarding

* Restructured the way onboarding changes settings

* Added better upload date template placeholder
This commit is contained in:
Kieran
2024-03-11 20:19:10 -07:00
committed by GitHub
parent f156fec4b7
commit 993865909c
8 changed files with 30 additions and 48 deletions
@@ -8,38 +8,34 @@ defmodule PinchflatWeb.Pages.PageController do
alias Pinchflat.Profiles.MediaProfile
def home(conn, params) do
force_onboarding = params["onboarding"]
media_profiles_exist = Repo.exists?(MediaProfile)
sources_exist = Repo.exists?(Source)
done_onboarding = params["onboarding"] == "0"
force_onboarding = params["onboarding"] == "1"
if !force_onboarding && media_profiles_exist && sources_exist do
render_home_page(conn)
if done_onboarding, do: Settings.set!(:onboarding, false)
if force_onboarding || Settings.get!(:onboarding) do
render_onboarding_page(conn)
else
render_onboarding_page(conn, media_profiles_exist, sources_exist)
render_home_page(conn)
end
end
defp render_home_page(conn) do
Settings.set!(:onboarding, false)
media_profile_count = Repo.aggregate(MediaProfile, :count, :id)
source_count = Repo.aggregate(Source, :count, :id)
media_item_count = Repo.aggregate(MediaItem, :count, :id)
conn
|> render(:home,
media_profile_count: media_profile_count,
source_count: source_count,
media_item_count: media_item_count
media_profile_count: Repo.aggregate(MediaProfile, :count, :id),
source_count: Repo.aggregate(Source, :count, :id),
media_item_count: Repo.aggregate(MediaItem, :count, :id)
)
end
defp render_onboarding_page(conn, media_profiles_exist, sources_exist) do
defp render_onboarding_page(conn) do
Settings.set!(:onboarding, true)
conn
|> render(:onboarding_checklist,
media_profiles_exist: media_profiles_exist,
sources_exist: sources_exist,
media_profiles_exist: Repo.exists?(MediaProfile),
sources_exist: Repo.exists?(Source),
layout: {Layouts, :onboarding}
)
end
@@ -39,7 +39,7 @@
</p>
<p class="text-md text-bodydark">Feel free to add more Media Profiles or Sources in the meantime!</p>
<div class="mt-8">
<.link href={~p"/"}>
<.link href={~p"/?onboarding=0"}>
<.button color="bg-primary" rounding="rounded-full" disabled={not @sources_exist}>
Let's Go <span class="font-bold mx-2">🚀</span>
</.button>