Sidebar QoL changes

This commit is contained in:
rxdn 2022-06-04 00:59:27 +01:00
parent 636b66127b
commit aaaed8421c
4 changed files with 50 additions and 21 deletions

View File

@ -2,7 +2,9 @@ package api
import ( import (
"github.com/TicketsBot/GoPanel/app/http/session" "github.com/TicketsBot/GoPanel/app/http/session"
"github.com/TicketsBot/GoPanel/rpc"
"github.com/TicketsBot/GoPanel/utils" "github.com/TicketsBot/GoPanel/utils"
"github.com/TicketsBot/common/premium"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
@ -24,8 +26,15 @@ func SessionHandler(ctx *gin.Context) {
return return
} }
tier, err := rpc.PremiumClient.GetTierByUser(userId, false)
if err != nil {
ctx.JSON(500, utils.ErrorJson(err))
return
}
ctx.JSON(200, gin.H{ ctx.JSON(200, gin.H{
"username": store.Name, "username": store.Name,
"avatar": store.Avatar, "avatar": store.Avatar,
"whitelabel": tier >= premium.Whitelabel,
}) })
} }

View File

@ -14,7 +14,7 @@ func UserHandler(ctx *gin.Context) {
if err != nil { if err != nil {
ctx.AbortWithStatusJSON(400, gin.H{ ctx.AbortWithStatusJSON(400, gin.H{
"success": false, "success": false,
"error": "Invalid user ID", "error": "Invalid user ID",
}) })
return return
} }
@ -23,13 +23,13 @@ func UserHandler(ctx *gin.Context) {
if err := cache.Instance.QueryRow(context.Background(), `SELECT "data"->>'Username' FROM users WHERE users.user_id=$1 AND EXISTS(SELECT FROM members WHERE members.guild_id=$2);`, userId, guildId).Scan(&username); err != nil { if err := cache.Instance.QueryRow(context.Background(), `SELECT "data"->>'Username' FROM users WHERE users.user_id=$1 AND EXISTS(SELECT FROM members WHERE members.guild_id=$2);`, userId, guildId).Scan(&username); err != nil {
ctx.JSON(404, gin.H{ ctx.JSON(404, gin.H{
"success": false, "success": false,
"error": "Not found", "error": "Not found",
}) })
return return
} }
ctx.JSON(200, gin.H{ ctx.JSON(200, gin.H{
"user_id": userId, "user_id": userId,
"guild_id": guildId, "guild_id": guildId,
"username": username, "username": username,
}) })

View File

@ -3,6 +3,8 @@
export let name; export let name;
export let avatar; export let avatar;
export let isWhitelabel = false;
</script> </script>
<div class="sidebar"> <div class="sidebar">
@ -14,12 +16,21 @@
<span class="sidebar-text">Servers</span> <span class="sidebar-text">Servers</span>
</div> </div>
</Navigate> </Navigate>
<Navigate to="/whitelabel" styles="sidebar-link"> {#if isWhitelabel}
<div class="sidebar-element"> <Navigate to="/whitelabel" styles="sidebar-link">
<i class="fas fa-edit sidebar-icon"></i> <div class="sidebar-element">
<span class="sidebar-text">Whitelabel</span> <i class="fas fa-edit sidebar-icon"></i>
</div> <span class="sidebar-text">Whitelabel</span>
</Navigate> </div>
</Navigate>
{:else}
<a href="https://ticketsbot.net/premium" class="sidebar-link">
<div class="sidebar-element">
<i class="fas fa-edit sidebar-icon"></i>
<span class="sidebar-text">Whitelabel</span>
</div>
</a>
{/if}
</div> </div>
</div> </div>
<div class="sidebar-container"> <div class="sidebar-container">
@ -57,6 +68,10 @@
margin-bottom: 2%; margin-bottom: 2%;
} }
.inner {
width: 100%;
}
.sidebar-element { .sidebar-element {
display: flex; display: flex;
align-items: center; align-items: center;
@ -75,6 +90,9 @@
max-width: 90%; max-width: 90%;
} }
/*
* Need global for Navigate link styling
*/
:global(.sidebar-link) { :global(.sidebar-link) {
display: flex; display: flex;
align-items: center; align-items: center;
@ -122,6 +140,8 @@
height: unset; height: unset;
min-width: unset; min-width: unset;
overflow: visible !important;
} }
.ref { .ref {
@ -132,21 +152,18 @@
margin-bottom: unset; margin-bottom: unset;
} }
.inner {
display: flex;
}
.sidebar-element { .sidebar-element {
width: unset; width: unset;
padding: 20px 15px; padding: 20px 15px;
} }
.sidebar-link { :global(.sidebar-link) {
width: unset; width: unset;
margin-left: unset; margin-left: 0 !important;
}
.inner {
display: flex;
flex-direction: row;
width: 100%;
height: 100%;
} }
.user-element { .user-element {

View File

@ -1,7 +1,7 @@
<Head/> <Head/>
<div class="wrapper"> <div class="wrapper">
<Sidebar name="{name}" avatar="{avatar}"/> <Sidebar name="{name}" avatar="{avatar}" {isWhitelabel} />
<div class="super-container"> <div class="super-container">
<LoadingScreen/> <LoadingScreen/>
<NotifyModal/> <NotifyModal/>
@ -31,6 +31,8 @@
let name; let name;
let avatar; let avatar;
let isWhitelabel = false;
async function loadData() { async function loadData() {
const res = await axios.get(`${API_URL}/api/session`); const res = await axios.get(`${API_URL}/api/session`);
if (res.status !== 200) { if (res.status !== 200) {
@ -44,6 +46,7 @@
name = res.data.username; name = res.data.username;
avatar = res.data.avatar; avatar = res.data.avatar;
isWhitelabel = res.data.whitelabel;
} }
loadData(); loadData();