Commit Graph

11 Commits

Author SHA1 Message Date
Michel Weststrate
29e528115d Support 1 dimension scrolling
Summary: Added `axis` property to scroll container, to make scroll work in one direction, and fill out the other one.

Reviewed By: cekkaewnumchai

Differential Revision: D24390943

fbshipit-source-id: 5767e753edfb947f43b3998e10d6cebf57f9b53b
2020-10-20 03:24:47 -07:00
Michel Weststrate
a2fac737f6 Render sidebar
Summary:
Restore sidebar functionality for Sandy plugins

Also needed to fix some circular dependency issues as fallout.

Reviewed By: cekkaewnumchai

Differential Revision: D24362215

fbshipit-source-id: 0a09ac35ba981322ae0793edc3aa79ffddf2ce73
2020-10-20 03:24:47 -07:00
Michel Weststrate
f14a724fa5 Device plugin list
Summary:
Render a plugin list

Will add tests once the entire feature is complete

Reviewed By: cekkaewnumchai

Differential Revision: D24079897

fbshipit-source-id: db7250ff612b67ab18dfcacdcb9c44dab596933d
2020-10-20 03:24:46 -07:00
Michel Weststrate
c38a4413dc Device Dropdown
Summary: This diff adds the device switcher, filling the switcher with apps and devices.

Reviewed By: cekkaewnumchai

Differential Revision: D24053787

fbshipit-source-id: 4f69835a12eec90a0e5704f71c8ceed5509f61ce
2020-10-20 03:24:46 -07:00
Michel Weststrate
b105574d00 More shaving on design system
Summary: Added standardized dimensions for padding and gap, to encourage people to build layouts that look consistent, using for example `padv="small"`

Reviewed By: cekkaewnumchai

Differential Revision: D23961386

fbshipit-source-id: 33cd3b8974858e021a8b7d1b32f018fe3f007c63
2020-10-01 05:35:10 -07:00
Michel Weststrate
e8370e9fc1 Introduce Design System Page / Design system improvements
Summary:
This diff introduces:

- ScrollContainer
- Make sure Ant Link components always open URLs externally, to avoid users needing to use electron api's
- Introduce a design systems page where people can find docs on how to organise sandy layout, and it also provides a convenient way to test layout mechanisms.
- Fixed several layout bugs found as a result of adding the design system page

In next diff:
- more convenience around organizing paddings
- making the design system accessible from the menu

Reviewed By: cekkaewnumchai

Differential Revision: D23930274

fbshipit-source-id: 4aab058d15b3391287e0e32513a5d83831448857
2020-10-01 05:35:10 -07:00
Michel Weststrate
aaabe1cc82 Introduce AppInspect
Summary:
This diff introduces the AppInspect pane.

I didn't get very fare, and it is markup only, but while at it made a bunch of other improvement in the component lib, so figured to prematurely submit to don't make the diffs too big.

Improvements
- Separated sidebar and Layout.X, as it was to much responsibility for one component, and made customization hard. Also caused state loss when switching between resizable and not.
- Setup a basic top level selection. Maybe will move it into redux in the future, but for now it suffices.
- Introduced Layout.Horizontal and `Layout.Vertical` as alternative to Ant design's space. The reason is that the latter can't stretching children, which we use quite frequently. (that is because they use wrappers to create spacing, but since we run on Electron, we can use CSS `gap` instead, which handles that much more elegantly).
- Fixed issue where gutter handle could disappear when dragging to far.

Reviewed By: cekkaewnumchai

Differential Revision: D23867265

fbshipit-source-id: e872b7f48b868e255f2c34d45e811b8ed93d0b00
2020-09-28 01:42:48 -07:00
Michel Weststrate
95638af321 Build main layout
Summary: This diff introduces the. main sections and restyled resizable panes according to the Figma design

Reviewed By: cekkaewnumchai

Differential Revision: D23758349

fbshipit-source-id: 7f09574f6b5fb54551141c13667c664e1769f09a
2020-09-21 11:53:21 -07:00
Michel Weststrate
55b6b021f1 Fix QPL layout regeression
Summary:
Fixed the layout usage in QPL, the `horizontal` was correct, but the elements where swapped (the table was supposed to take all remaining size, and sidebar it's needed space, rather than the reverse).

Made this more explicit in the Layout component, by splitting it up in `Layout.(Top|Left|Right|Bottom)`, so that one has to make an explicit choice here, making it less error prone.

Reviewed By: passy

Differential Revision: D21572438

fbshipit-source-id: 29aa3462a3c96d048825be3157730e26182cb2fa
2020-05-19 11:51:21 -07:00
Michel Weststrate
655d856d1c Fixed broken timeline layout
Summary: Changelog: Fixed broken layout of timeline in QPL plugin

Reviewed By: passy

Differential Revision: D21383013

fbshipit-source-id: 95fbe2681ff27dff827c742f11192c1d07ad021c
2020-05-05 04:06:25 -07:00
Michel Weststrate
4665bcf218 Introduced Layout component
Summary:
This diff introduces a Layout component.

Layout is now quite randomly build up by using panels, sidebars, flex columns, flexrow and view components. They all have slight different scrolling, overflow, and grow behavior. Which causes issues with areas not being srcollable, double scrollbars or simply the wrong area scrolling. Too make things worse to design, many components by default display hidden content, and show scrollbars automatically rather than deliberately.

To work towards a consist, and especially simple layout model, over time I want to build a consistent outside-in layout model, where always parents reserve space for children, and children fill the available space and device it even further.

Note that this approaches better how 'applications' typically organize their layout, which is opposite from the classic 'document', where the contents is allowed to grow and is used to push things down / aside where they want. However, such a model fits an application with toolbars, sidebars and scroll regions badly, and currently those two philosophies are mixed throughout the application.

This component is a very small first step to organizing our layout consistently. By using a new component there is less risk to break existing layouts. The `Layout` component takes up all available space, both horizontally and vertically, and gives the first child what it needs based on its own size (typically, a toolbar or (resizable) sidebar), and all the remaining space to the second child. By default the space is distributed vertically, but it can also be distributed horizontally. It can provide scrollbars as well if needed so that the main content doesn't need to provide that by itself.

Examples:

```
<Layout scrollable>
  <Toolbar />
  <LargePicture />
</Layout>

<Layout horizontal>
  <ResizableSidebar />
  <SomeContentTable />
</Layout>
```

Reviewed By: jknoxville

Differential Revision: D21178245

fbshipit-source-id: c2d2f167d1572278e51a5b66e1cbf13c42c3b898
2020-04-23 03:47:31 -07:00