budibase/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte

89 lines
1.9 KiB
Svelte
Raw Normal View History

<script>
import { store } from "../builderStore/"
import ComponentPropertiesPanel from "./ComponentPropertiesPanel.svelte"
import ComponentSelectionList from "./ComponentSelectionList.svelte"
2020-02-25 00:23:33 +01:00
const PROPERTIES_TAB = "properties";
const COMPONENT_SELECTION_TAB = "components";
let selected = PROPERTIES_TAB
2020-02-03 10:50:30 +01:00
const isSelected = tab => selected === tab
2020-02-03 10:50:30 +01:00
const selectTab = tab => (selected = tab)
2020-02-25 00:23:33 +01:00
const toggleTab = () => selected = selected === PROPERTIES_TAB ? COMPONENT_SELECTION_TAB : PROPERTIES_TAB;
</script>
<div class="root">
{#if $store.currentFrontEndType === 'page' || $store.screens.length}
<div class="switcher">
<button
2020-02-25 00:23:33 +01:00
class:selected={selected === PROPERTIES_TAB}
on:click={() => selectTab(PROPERTIES_TAB)}>
Properties
</button>
<button
2020-02-25 00:23:33 +01:00
class:selected={selected === COMPONENT_SELECTION_TAB}
on:click={() => selectTab(COMPONENT_SELECTION_TAB)}>
Components
</button>
</div>
<div class="panel">
2020-02-25 00:23:33 +01:00
{#if selected === PROPERTIES_TAB}
<ComponentPropertiesPanel {toggleTab} />
{/if}
2020-02-25 00:23:33 +01:00
{#if selected === COMPONENT_SELECTION_TAB}
<ComponentSelectionList {toggleTab} />
{/if}
</div>
{:else}
<p>Please create a new screen</p>
{/if}
</div>
<style>
2020-02-03 10:50:30 +01:00
.root {
height: 100%;
display: flex;
flex-direction: column;
padding: 2rem 1.5rem 2rem 1.5rem;
2020-02-03 10:50:30 +01:00
}
2020-02-03 10:50:30 +01:00
.switcher {
display: flex;
justify-content: space-between;
2020-01-21 15:50:35 +01:00
margin-bottom: 25px;
2020-02-03 10:50:30 +01:00
}
2020-02-03 10:50:30 +01:00
.switcher > button {
display: inline-block;
border: none;
2020-01-21 15:50:35 +01:00
margin: 0;
padding: 0;
cursor: pointer;
font-weight: 600;
font-size: 0.85rem;
text-transform: uppercase;
color: #999;
2020-02-03 10:50:30 +01:00
background-color: rgba(0, 0, 0, 0);
}
2020-02-03 10:50:30 +01:00
.switcher > .selected {
color: #333;
2020-02-03 10:50:30 +01:00
}
2020-02-03 10:50:30 +01:00
.panel {
flex: 1 1 auto;
height: 0px;
overflow-y: auto;
2020-02-03 10:50:30 +01:00
}
</style>