* Made method to getting singular media details; Renamed other related method * Takes a fun and flirty digression to remove abstractions around yt-dlp since I'm 100% committed to using it exclusively * Removed commented test code * Lays the groundwork for fast indexing * Added module for working with youtube RSS feed * Added methods to kick off indexing workers from RSS response * Improve short detection (#59) * Made media attribute-related yt-dlp calls return a struct * Added shorts attribute to media items * Added ability to discern a short from yt-dlp response * Updated search to use new shorts attribute * Fast index UI (#63) * Added fast_index field and adds it to source form * Added fast indexing to source changeset operations * Added fast indexing worker and updated other modules to start using it * Handled fast index worker on source update * Add support modals (#65) * Added fast indexing upgrade modal * Improved modal on smaller screens * Updated links to work again * Added donation modal * Reverted source fast index to 15 minutes * Removed unneeded HTML attributes from old alpine approach
40 lines
1,000 B
Elixir
40 lines
1,000 B
Elixir
defmodule Pinchflat.UpgradeButtonLive do
|
|
use PinchflatWeb, :live_view
|
|
|
|
def render(assigns) do
|
|
~H"""
|
|
<form phx-change="check_matching_text">
|
|
<.input type="text" name="unlock-pro-textbox" value="" />
|
|
</form>
|
|
|
|
<.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
|