make app usable without account, remove extra stuff

This commit is contained in:
m5r
2023-04-29 18:30:07 +02:00
parent cb35455722
commit 03ae466c66
128 changed files with 617 additions and 14061 deletions

View File

@ -3,7 +3,6 @@ import { useLoaderData } from "superjson-remix";
import MissingTwilioCredentials from "~/features/core/components/missing-twilio-credentials";
import PageTitle from "~/features/core/components/page-title";
import InactiveSubscription from "~/features/core/components/inactive-subscription";
import PhoneCallsList from "~/features/phone-calls/components/phone-calls-list";
import callsLoader, { type PhoneCallsLoaderData } from "~/features/phone-calls/loaders/calls";
import { getSeoMeta } from "~/utils/seo";
@ -15,7 +14,7 @@ export const meta: MetaFunction = () => ({
export const loader = callsLoader;
export default function PhoneCalls() {
const { hasPhoneNumber, hasOngoingSubscription } = useLoaderData<PhoneCallsLoaderData>();
const { hasPhoneNumber } = useLoaderData<PhoneCallsLoaderData>();
if (!hasPhoneNumber) {
return (
@ -26,20 +25,6 @@ export default function PhoneCalls() {
);
}
if (!hasOngoingSubscription) {
return (
<>
<InactiveSubscription />
<div className="filter blur-sm select-none absolute top-0 w-full h-full z-0">
<PageTitle title="Calls" />
<section className="relative flex flex-grow flex-col">
<PhoneCallsList />
</section>
</div>
</>
);
}
return (
<>
<PageTitle className="pl-12" title="Calls" />

View File

@ -11,7 +11,6 @@ import useOnBackspacePress from "~/features/keypad/hooks/use-on-backspace-press"
import Keypad from "~/features/keypad/components/keypad";
import BlurredKeypad from "~/features/keypad/components/blurred-keypad";
import MissingTwilioCredentials from "~/features/core/components/missing-twilio-credentials";
import InactiveSubscription from "~/features/core/components/inactive-subscription";
import { getSeoMeta } from "~/utils/seo";
import { usePhoneNumber, usePressDigit, useRemoveDigit } from "~/features/keypad/hooks/atoms";
@ -22,17 +21,13 @@ export const meta: MetaFunction = () => ({
export const loader = keypadLoader;
export default function KeypadPage() {
const { hasOngoingSubscription, hasPhoneNumber, lastRecipientCalled } = useLoaderData<KeypadLoaderData>();
const { hasPhoneNumber, lastRecipientCalled } = useLoaderData<KeypadLoaderData>();
const navigate = useNavigate();
const [phoneNumber, setPhoneNumber] = usePhoneNumber();
const removeDigit = useRemoveDigit();
const pressDigit = usePressDigit();
const onBackspacePress = useOnBackspacePress();
useKeyPress((key) => {
if (!hasOngoingSubscription) {
return;
}
if (key === "Backspace") {
return removeDigit();
}
@ -49,15 +44,6 @@ export default function KeypadPage() {
);
}
if (!hasOngoingSubscription) {
return (
<>
<InactiveSubscription />
<BlurredKeypad />
</>
);
}
return (
<>
<div className="w-96 h-full flex flex-col justify-around py-5 mx-auto text-center text-black">
@ -68,7 +54,7 @@ export default function KeypadPage() {
<Keypad>
<button
onClick={async () => {
if (!hasPhoneNumber || !hasOngoingSubscription) {
if (!hasPhoneNumber) {
return;
}

View File

@ -4,7 +4,6 @@ import clsx from "clsx";
import {
IoLogOutOutline,
IoNotificationsOutline,
IoCardOutline,
IoCallOutline,
IoPersonCircleOutline,
IoHelpBuoyOutline,
@ -14,11 +13,8 @@ import Divider from "~/features/settings/components/divider";
import { getSeoMeta } from "~/utils/seo";
const subNavigation = [
{ name: "Account", to: "/settings/account", icon: IoPersonCircleOutline },
{ name: "Phone", to: "/settings/phone", icon: IoCallOutline },
{ name: "Billing", to: "/settings/billing", icon: IoCardOutline },
{ name: "Notifications", to: "/settings/notifications", icon: IoNotificationsOutline },
{ name: "Support", to: "/settings/support", icon: IoHelpBuoyOutline },
];
export const meta: MetaFunction = () => ({
@ -62,15 +58,6 @@ export default function SettingsLayout() {
)}
</NavLink>
))}
<Divider />
<Link
to="/sign-out"
className="group text-gray-900 hover:text-gray-900 hover:bg-gray-50 rounded-md px-3 py-2 flex items-center text-sm font-medium"
>
<IoLogOutOutline className="text-gray-400 group-hover:text-gray-500 flex-shrink-0 -ml-1 mr-3 h-6 w-6" />
Log out
</Link>
</nav>
</aside>

View File

@ -1,18 +0,0 @@
import accountAction from "~/features/settings/actions/account";
import ProfileInformations from "~/features/settings/components/account/profile-informations";
import UpdatePassword from "~/features/settings/components/account/update-password";
import DangerZone from "~/features/settings/components/account/danger-zone";
export const action = accountAction;
export default function Account() {
return (
<div className="flex flex-col space-y-6">
<ProfileInformations />
<UpdatePassword />
<DangerZone />
</div>
);
}

View File

@ -1,66 +0,0 @@
import { SubscriptionStatus } from "@prisma/client";
import usePaymentsHistory from "~/features/settings/hooks/use-payments-history";
import SettingsSection from "~/features/settings/components/settings-section";
import BillingHistory from "~/features/settings/components/billing/billing-history";
import Divider from "~/features/settings/components/divider";
import Plans from "~/features/settings/components/billing/plans";
import PaddleLink from "~/features/settings/components/billing/paddle-link";
function useSubscription() {
return {
subscription: null as any,
cancelSubscription: () => void 0,
updatePaymentMethod: () => void 0,
};
}
export default function Billing() {
const { count: paymentsCount } = usePaymentsHistory();
const { subscription, cancelSubscription, updatePaymentMethod } = useSubscription();
return (
<>
{subscription ? (
<SettingsSection>
{subscription.status === SubscriptionStatus.deleted ? (
<p>
Your {plansName[subscription.paddlePlanId]?.toLowerCase()} subscription is cancelled and
will expire on {subscription.cancellationEffectiveDate!.toLocaleDateString()}.
</p>
) : (
<>
<p>Current plan: {subscription.paddlePlanId}</p>
<PaddleLink
onClick={() => updatePaymentMethod(/*{ updateUrl: subscription.updateUrl }*/)}
text="Update payment method"
/>
<PaddleLink
onClick={() => cancelSubscription(/*{ cancelUrl: subscription.cancelUrl }*/)}
text="Cancel subscription"
/>
</>
)}
</SettingsSection>
) : null}
{paymentsCount > 0 ? (
<>
<BillingHistory />
<div className="hidden lg:block lg:py-3">
<Divider />
</div>
</>
) : null}
<Plans />
<p className="text-sm text-gray-500">Prices include all applicable sales taxes.</p>
</>
);
}
const plansName: Record<number, string> = {
727544: "Yearly",
727540: "Monthly",
};

View File

@ -1,4 +1,4 @@
import type { LoaderFunction } from "@remix-run/node";
import { redirect } from "@remix-run/node";
export const loader: LoaderFunction = () => redirect("/settings/account");
export const loader: LoaderFunction = () => redirect("/settings/phone");

View File

@ -1,9 +0,0 @@
export default function SupportPage() {
return (
<div>
<a className="underline" href="mailto:support@shellphone.app">
Email us
</a>
</div>
);
}