mirror of
https://github.com/pockethost/pockethost.git
synced 2025-11-24 14:35:49 +00:00
chore: remove hard-coded max instance counts and prefer subscription_quantity
This commit is contained in:
parent
a1d7f65aa6
commit
ad64887ba0
@ -1,8 +1,4 @@
|
|||||||
import {
|
import { type InstanceFields, parseBoolean } from 'pockethost/common'
|
||||||
type InstanceFields,
|
|
||||||
parseBoolean,
|
|
||||||
SubscriptionType,
|
|
||||||
} from 'pockethost/common'
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* These environment variables default to pointing to the production build so
|
* These environment variables default to pointing to the production build so
|
||||||
@ -33,15 +29,6 @@ const mkPath = (...paths: string[]) => {
|
|||||||
return paths.filter((v) => !!v).join('/')
|
return paths.filter((v) => !!v).join('/')
|
||||||
}
|
}
|
||||||
|
|
||||||
export const MAX_INSTANCE_COUNTS = {
|
|
||||||
[SubscriptionType.Free]: 25,
|
|
||||||
[SubscriptionType.Legacy]: 25,
|
|
||||||
[SubscriptionType.Founder]: 2147483647, // https://discord.com/channels/1128192380500193370/1128192380500193373/1296340516044017718
|
|
||||||
[SubscriptionType.Premium]: 250,
|
|
||||||
[SubscriptionType.Flounder]: 250, // Added to get the error away
|
|
||||||
}
|
|
||||||
export const FREE_MAX_INSTANCE_COUNT = 25
|
|
||||||
|
|
||||||
export const APP_URL = (...paths: string[]) => {
|
export const APP_URL = (...paths: string[]) => {
|
||||||
return `${PUBLIC_APP_URL}/${mkPath(...paths)}`
|
return `${PUBLIC_APP_URL}/${mkPath(...paths)}`
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,16 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { MAX_INSTANCE_COUNTS } from '$src/env'
|
import {
|
||||||
import { globalInstancesStore, userSubscriptionType } from '$util/stores'
|
globalInstancesStore,
|
||||||
|
userSubscriptionType,
|
||||||
|
userStore,
|
||||||
|
} from '$util/stores'
|
||||||
import { values } from '@s-libs/micro-dash'
|
import { values } from '@s-libs/micro-dash'
|
||||||
import InstanceList from './InstanceList.svelte'
|
import InstanceList from './InstanceList.svelte'
|
||||||
import { SubscriptionType } from 'pockethost/common'
|
import { SubscriptionType } from 'pockethost/common'
|
||||||
import { faPlus } from '@fortawesome/free-solid-svg-icons'
|
import { faPlus } from '@fortawesome/free-solid-svg-icons'
|
||||||
import Fa from 'svelte-fa'
|
import Fa from 'svelte-fa'
|
||||||
|
|
||||||
|
$: maxInstances = $userStore?.subscription_quantity || 0
|
||||||
$: instanceCount = values($globalInstancesStore).length
|
$: instanceCount = values($globalInstancesStore).length
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -29,17 +33,17 @@
|
|||||||
<progress
|
<progress
|
||||||
class="progress progress-primary w-48 md:w-80"
|
class="progress progress-primary w-48 md:w-80"
|
||||||
value={instanceCount}
|
value={instanceCount}
|
||||||
max={MAX_INSTANCE_COUNTS[$userSubscriptionType]}
|
max={maxInstances}
|
||||||
></progress>
|
></progress>
|
||||||
<div>
|
<div>
|
||||||
{#if $userSubscriptionType === SubscriptionType.Founder}
|
{#if $userSubscriptionType === SubscriptionType.Founder}
|
||||||
{instanceCount}/<a
|
{instanceCount}/<a
|
||||||
href="https://discord.com/channels/1128192380500193370/1128192380500193373/1296340516044017718"
|
href="https://discord.com/channels/1128192380500193370/1128192380500193373/1296340516044017718"
|
||||||
class="link"
|
class="link"
|
||||||
target="_blank">{MAX_INSTANCE_COUNTS[$userSubscriptionType]}</a
|
target="_blank">{maxInstances}</a
|
||||||
>
|
>
|
||||||
{:else}
|
{:else}
|
||||||
{instanceCount}/{MAX_INSTANCE_COUNTS[$userSubscriptionType]}
|
{instanceCount}/{maxInstances}
|
||||||
{/if}
|
{/if}
|
||||||
{#if $userSubscriptionType === SubscriptionType.Free}
|
{#if $userSubscriptionType === SubscriptionType.Free}
|
||||||
<a href="/pricing" class="link text-xs text-success">Upgrade</a>
|
<a href="/pricing" class="link text-xs text-success">Upgrade</a>
|
||||||
|
|||||||
@ -3,19 +3,18 @@
|
|||||||
globalInstancesStore,
|
globalInstancesStore,
|
||||||
userSubscriptionType,
|
userSubscriptionType,
|
||||||
versions,
|
versions,
|
||||||
|
userStore,
|
||||||
} from '$util/stores'
|
} from '$util/stores'
|
||||||
import { values } from '@s-libs/micro-dash'
|
import { values } from '@s-libs/micro-dash'
|
||||||
import Creator from './Creator.svelte'
|
import Creator from './Creator.svelte'
|
||||||
import Paywall from './Paywall.svelte'
|
import Paywall from './Paywall.svelte'
|
||||||
import { MAX_INSTANCE_COUNTS } from '$src/env'
|
|
||||||
|
|
||||||
|
$: maxInstances = $userStore?.subscription_quantity || 0
|
||||||
let instanceCount = 0
|
let instanceCount = 0
|
||||||
let canCreate = false
|
let canCreate = false
|
||||||
$: {
|
$: {
|
||||||
instanceCount = values($globalInstancesStore).length
|
instanceCount = values($globalInstancesStore).length
|
||||||
canCreate =
|
canCreate = instanceCount < maxInstances && $versions.length > 0
|
||||||
instanceCount < MAX_INSTANCE_COUNTS[$userSubscriptionType] &&
|
|
||||||
$versions.length > 0
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { MAX_INSTANCE_COUNTS } from '$src/env'
|
import { userSubscriptionType, userStore } from '$util/stores'
|
||||||
import { userSubscriptionType } from '$util/stores'
|
import { PLAN_NAMES } from 'pockethost/common'
|
||||||
import { PLAN_NAMES, SubscriptionType } from 'pockethost/common'
|
|
||||||
|
$: maxInstances = $userStore?.subscription_quantity || 0
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="card max-w-sm bg-base-100 shadow-xl">
|
<div class="card max-w-sm bg-base-100 shadow-xl">
|
||||||
@ -9,8 +10,9 @@
|
|||||||
<h2 class="card-title">Paywall!</h2>
|
<h2 class="card-title">Paywall!</h2>
|
||||||
<p>Oof. You hit a paywall.</p>
|
<p>Oof. You hit a paywall.</p>
|
||||||
<p class="text-error">
|
<p class="text-error">
|
||||||
You're only allowed {MAX_INSTANCE_COUNTS[$userSubscriptionType]} projects on
|
You're only allowed {maxInstances} projects on the {PLAN_NAMES[
|
||||||
the {PLAN_NAMES[$userSubscriptionType]} plan.
|
$userSubscriptionType
|
||||||
|
]} plan.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
But that's okay, we know you want to support PocketHost if you love it
|
But that's okay, we know you want to support PocketHost if you love it
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user