pr comments
This commit is contained in:
parent
0709f68f47
commit
d2be62dfe1
|
@ -9,7 +9,7 @@
|
|||
Body,
|
||||
Link,
|
||||
} from "@budibase/bbui"
|
||||
import { auth, admin } from "@/stores/portal"
|
||||
import { auth, admin, licensing } from "@/stores/portal"
|
||||
|
||||
import { createEventDispatcher } from "svelte"
|
||||
import { API } from "@/api"
|
||||
|
@ -36,14 +36,15 @@
|
|||
let containerWidth = "auto"
|
||||
let promptText = ""
|
||||
let animateBorder = false
|
||||
let creditsExceeded = false // TODO: Make this computed when quota is implemented
|
||||
let switchOnAIModal: Modal
|
||||
let addCreditsModal: Modal
|
||||
|
||||
$: accountPortalAccess = $auth?.user?.accountPortalAccess
|
||||
$: accountPortal = $admin.accountPortalUrl
|
||||
$: aiEnabled = false
|
||||
$: aiEnabled = $auth?.user?.llm
|
||||
$: expanded = expandedOnly ? true : expanded
|
||||
$: creditsExceeded = $licensing.aiCreditsExceeded
|
||||
$: disabled = suggestedCode !== null || !aiEnabled || creditsExceeded
|
||||
$: if (expandedOnly) {
|
||||
containerWidth = calculateExpandedWidth()
|
||||
}
|
||||
|
@ -153,8 +154,7 @@
|
|||
src={BBAI}
|
||||
alt="AI"
|
||||
class="ai-icon"
|
||||
class:disabled={expanded &&
|
||||
(suggestedCode !== null || !aiEnabled || creditsExceeded)}
|
||||
class:disabled={expanded && disabled}
|
||||
on:click={!expandedOnly
|
||||
? e => {
|
||||
e.stopPropagation()
|
||||
|
@ -170,7 +170,7 @@
|
|||
class="prompt-input"
|
||||
placeholder="Generate Javascript..."
|
||||
on:keydown={handleKeyPress}
|
||||
disabled={suggestedCode !== null || !aiEnabled || creditsExceeded}
|
||||
{disabled}
|
||||
readonly={suggestedCode !== null}
|
||||
/>
|
||||
{:else}
|
||||
|
|
|
@ -56,7 +56,9 @@ interface LicensingState {
|
|||
// user limits
|
||||
userCount?: number
|
||||
userLimit?: number
|
||||
aiCreditsLimit?: number
|
||||
userLimitReached: boolean
|
||||
aiCreditsExceeded: boolean
|
||||
errUserLimit: boolean
|
||||
}
|
||||
|
||||
|
@ -102,6 +104,8 @@ class LicensingStore extends BudiStore<LicensingState> {
|
|||
userLimit: undefined,
|
||||
userLimitReached: false,
|
||||
errUserLimit: false,
|
||||
// AI Limits
|
||||
aiCreditsExceeded: false,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -119,6 +123,16 @@ class LicensingStore extends BudiStore<LicensingState> {
|
|||
return userCount > userLimit
|
||||
}
|
||||
|
||||
aiCreditsExceeded(
|
||||
aiCredits: number,
|
||||
aiCreditsLimit = get(this.store).aiCreditsLimit
|
||||
) {
|
||||
if (aiCreditsLimit === UNLIMITED || aiCreditsLimit === undefined) {
|
||||
return false
|
||||
}
|
||||
return aiCredits > aiCreditsLimit
|
||||
}
|
||||
|
||||
async isCloud() {
|
||||
let adminStore = get(admin)
|
||||
if (!adminStore.loaded) {
|
||||
|
@ -291,9 +305,15 @@ class LicensingStore extends BudiStore<LicensingState> {
|
|||
|
||||
const userQuota = license.quotas.usage.static.users
|
||||
const userLimit = userQuota.value
|
||||
const aiCreditsQuota = license.quotas.usage.monthly.budibaseAICredits
|
||||
const aiCreditsLimit = aiCreditsQuota.value
|
||||
const userCount = usage.usageQuota.users
|
||||
const userLimitReached = this.usersLimitReached(userCount, userLimit)
|
||||
const userLimitExceeded = this.usersLimitExceeded(userCount, userLimit)
|
||||
const aiCreditsExceeded = this.aiCreditsExceeded(
|
||||
usage.monthly.current.budibaseAICredits,
|
||||
aiCreditsLimit
|
||||
)
|
||||
const isCloudAccount = await this.isCloud()
|
||||
const errUserLimit =
|
||||
isCloudAccount &&
|
||||
|
@ -315,6 +335,8 @@ class LicensingStore extends BudiStore<LicensingState> {
|
|||
userLimit,
|
||||
userLimitReached,
|
||||
errUserLimit,
|
||||
aiCreditsLimit,
|
||||
aiCreditsExceeded,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue