* [Unrelated] updated module name for existing liveview module * Updated toggle component and moved MP index table to a liveview * [WIP] reverted MP index table; added source count to MP index * Moved new live table to sources index * Added 'enabled' boolean to sources * Got 'enabled' logic working re: downloading pending media * Updated sources context to do the right thing when a source is updated * Docs and tests * Updated slow indexing to maintain its old schedule if re-enabled * Hooked up the enabled toggle to the sources page * [Unrelated] added direct links to various tabs on the sources table * More tests * Removed unneeded guard in * Removed outdated comment
41 lines
1.1 KiB
Elixir
41 lines
1.1 KiB
Elixir
defmodule Pinchflat.UpgradeButtonLive do
|
|
use PinchflatWeb, :live_view
|
|
|
|
def render(assigns) do
|
|
~H"""
|
|
<form id="upgradeForm" phx-change="check_matching_text" phx-hook="supress-enter-submission">
|
|
<.input type="text" name="unlock-pro-textbox" value="" />
|
|
</form>
|
|
|
|
<%!-- The setTimeout is so the modal has time to disappear before it's removed --%>
|
|
<.button
|
|
class="w-full mt-4"
|
|
type="button"
|
|
disabled={@button_disabled}
|
|
phx-click={hide_modal("upgrade-modal")}
|
|
x-on:click="setTimeout(() => { proEnabled = true }, 200)"
|
|
>
|
|
Unlock Pro
|
|
</.button>
|
|
"""
|
|
end
|
|
|
|
def mount(_params, _session, socket) do
|
|
{:ok, assign(socket, :button_disabled, true)}
|
|
end
|
|
|
|
def handle_event("check_matching_text", %{"unlock-pro-textbox" => text}, socket) do
|
|
normalized_text =
|
|
text
|
|
|> String.trim()
|
|
|> String.downcase()
|
|
|
|
if normalized_text == "got it" do
|
|
Settings.set(pro_enabled: true)
|
|
|
|
{:noreply, update(socket, :button_disabled, fn _ -> false end)}
|
|
else
|
|
{:noreply, update(socket, :button_disabled, fn _ -> true end)}
|
|
end
|
|
end
|
|
end
|