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

86 lines
1.7 KiB
Svelte
Raw Normal View History

<script>
import { store } from "builderStore/"
import ComponentPropertiesPanel from "./ComponentPropertiesPanel.svelte"
import ComponentSelectionList from "./ComponentSelectionList.svelte"
2020-02-25 16:21:23 +01:00
const PROPERTIES_TAB = "properties"
const COMPONENT_SELECTION_TAB = "components"
2020-02-25 00:23:33 +01:00
2020-02-25 16:21:23 +01:00
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
2020-02-25 16:21:23 +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 === COMPONENT_SELECTION_TAB}
on:click={() => selectTab(COMPONENT_SELECTION_TAB)}>
2020-05-07 15:30:04 +02:00
Add
</button>
2020-02-26 17:36:30 +01:00
<button
class:selected={selected === PROPERTIES_TAB}
on:click={() => selectTab(PROPERTIES_TAB)}>
2020-05-07 15:30:04 +02:00
Edit
2020-02-26 17:36:30 +01:00
</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>
{/if}
2020-03-27 17:58:32 +01:00
</div>
<style>
2020-02-03 10:50:30 +01:00
.root {
height: 100%;
display: flex;
flex-direction: column;
2020-06-01 18:14:54 +02:00
padding: 20px 5px 20px 10px;
border-left: solid 1px var(--grey-2);
2020-02-03 10:50:30 +01:00
}
2020-02-03 10:50:30 +01:00
.switcher {
display: flex;
margin: 0px 20px 20px 0px;
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-size: 18px;
font-weight: 600;
color: var(--grey-5);
margin-right: 20px;
2020-02-03 10:50:30 +01:00
}
2020-02-03 10:50:30 +01:00
.switcher > .selected {
color: var(--ink);
2020-02-03 10:50:30 +01:00
}
2020-05-28 17:24:53 +02:00
.panel {
height: 100%;
}
</style>