Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add plus icon to all "new" buttons above tables #2168

Merged
merged 4 commits into from
Apr 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions app/pages/ProjectsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
import { createColumnHelper } from '@tanstack/react-table'
import { useCallback, useMemo } from 'react'
import { Link, Outlet, useNavigate } from 'react-router-dom'
import { Outlet, useNavigate } from 'react-router-dom'

import {
apiQueryClient,
Expand All @@ -23,7 +23,7 @@ import { makeLinkCell } from '~/table/cells/LinkCell'
import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions } from '~/ui/lib/Table'
Expand Down Expand Up @@ -123,9 +123,7 @@ export function ProjectsPage() {
<PageTitle icon={<Folder24Icon />}>Projects</PageTitle>
</PageHeader>
<TableActions>
<Link to={pb.projectsNew()} className={buttonStyle({ size: 'sm' })}>
New Project
</Link>
<CreateLink to={pb.projectsNew()}>New Project</CreateLink>
</TableActions>
<Table columns={columns} emptyState={<EmptyState />} />
<Outlet />
Expand Down
6 changes: 2 additions & 4 deletions app/pages/SiloAccessPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import { confirmDelete } from '~/stores/confirm-delete'
import { getActionsCol } from '~/table/columns/action-col'
import { Table } from '~/table/Table'
import { Badge } from '~/ui/lib/Badge'
import { Button } from '~/ui/lib/Button'
import { CreateButton } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions, TableEmptyBox } from '~/ui/lib/Table'
Expand Down Expand Up @@ -165,9 +165,7 @@ export function SiloAccessPage() {
</PageHeader>

<TableActions>
<Button size="sm" onClick={() => setAddModalOpen(true)}>
Add user or group
</Button>
<CreateButton onClick={() => setAddModalOpen(true)}>Add user or group</CreateButton>
</TableActions>
{siloPolicy && addModalOpen && (
<SiloAccessAddUserSideModal
Expand Down
6 changes: 2 additions & 4 deletions app/pages/project/access/ProjectAccessPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import { confirmDelete } from '~/stores/confirm-delete'
import { getActionsCol } from '~/table/columns/action-col'
import { Table } from '~/table/Table'
import { Badge } from '~/ui/lib/Badge'
import { Button } from '~/ui/lib/Button'
import { CreateButton } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions, TableEmptyBox } from '~/ui/lib/Table'
Expand Down Expand Up @@ -199,9 +199,7 @@ export function ProjectAccessPage() {
</PageHeader>

<TableActions>
<Button size="sm" onClick={() => setAddModalOpen(true)}>
Add user or group
</Button>
<CreateButton onClick={() => setAddModalOpen(true)}>Add user or group</CreateButton>
</TableActions>
{projectPolicy && addModalOpen && (
<ProjectAccessAddUserSideModal
Expand Down
8 changes: 3 additions & 5 deletions app/pages/project/disks/DisksPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
import { createColumnHelper } from '@tanstack/react-table'
import { useCallback } from 'react'
import { Link, Outlet, type LoaderFunctionArgs } from 'react-router-dom'
import { Outlet, type LoaderFunctionArgs } from 'react-router-dom'

import {
apiQueryClient,
Expand All @@ -27,7 +27,7 @@ import { InstanceLinkCell } from '~/table/cells/InstanceLinkCell'
import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions } from '~/ui/lib/Table'
Expand Down Expand Up @@ -164,9 +164,7 @@ export function DisksPage() {
<PageTitle icon={<Storage24Icon />}>Disks</PageTitle>
</PageHeader>
<TableActions>
<Link to={pb.disksNew({ project })} className={buttonStyle({ size: 'sm' })}>
New Disk
</Link>
<CreateLink to={pb.disksNew({ project })}>New Disk</CreateLink>
</TableActions>
<Table columns={columns} emptyState={<EmptyState />} />
<Outlet />
Expand Down
7 changes: 3 additions & 4 deletions app/pages/project/floating-ips/FloatingIpsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,13 @@ import { InstanceLinkCell } from '~/table/cells/InstanceLinkCell'
import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { Listbox } from '~/ui/lib/Listbox'
import { Message } from '~/ui/lib/Message'
import { Modal } from '~/ui/lib/Modal'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableControls, TableControlsLink, TableControlsText } from '~/ui/lib/Table'
import { TableControls, TableControlsText } from '~/ui/lib/Table'
import { links } from '~/util/links'
import { pb } from '~/util/path-builder'

Expand Down Expand Up @@ -192,9 +193,7 @@ export function FloatingIpsPage() {
your instances to be reachable from the internet. Learn more about{' '}
<ExternalLink href={links.floatingIpsDocs}>managing floating IPs</ExternalLink>.
</TableControlsText>
<TableControlsLink to={pb.floatingIpsNew({ project })}>
New Floating IP
</TableControlsLink>
<CreateLink to={pb.floatingIpsNew({ project })}>New Floating IP</CreateLink>
</TableControls>
<Table columns={columns} emptyState={<EmptyState />} />
<Outlet />
Expand Down
8 changes: 3 additions & 5 deletions app/pages/project/images/ImagesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
import { createColumnHelper } from '@tanstack/react-table'
import { useCallback, useMemo, useState } from 'react'
import { Link, Outlet, type LoaderFunctionArgs } from 'react-router-dom'
import { Outlet, type LoaderFunctionArgs } from 'react-router-dom'

import { apiQueryClient, useApiMutation, useApiQueryClient, type Image } from '@oxide/api'
import { Images24Icon } from '@oxide/design-system/icons/react'
Expand All @@ -19,7 +19,7 @@ import { makeLinkCell } from '~/table/cells/LinkCell'
import { getActionsCol, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { Message } from '~/ui/lib/Message'
import { Modal } from '~/ui/lib/Modal'
Expand Down Expand Up @@ -100,9 +100,7 @@ export function ImagesPage() {
<PageTitle icon={<Images24Icon />}>Images</PageTitle>
</PageHeader>
<TableActions>
<Link to={pb.projectImagesNew({ project })} className={buttonStyle({ size: 'sm' })}>
Upload image
</Link>
<CreateLink to={pb.projectImagesNew({ project })}>Upload image</CreateLink>
</TableActions>
<Table columns={columns} emptyState={<EmptyState />} />
{promoteImageName && (
Expand Down
8 changes: 3 additions & 5 deletions app/pages/project/instances/InstancesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
import { createColumnHelper } from '@tanstack/react-table'
import { useMemo } from 'react'
import { Link, useNavigate, type LoaderFunctionArgs } from 'react-router-dom'
import { useNavigate, type LoaderFunctionArgs } from 'react-router-dom'

import {
apiQueryClient,
Expand All @@ -25,7 +25,7 @@ import { makeLinkCell } from '~/table/cells/LinkCell'
import { getActionsCol } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions } from '~/ui/lib/Table'
Expand Down Expand Up @@ -127,9 +127,7 @@ export function InstancesPage() {
</PageHeader>
<TableActions>
<RefreshButton onClick={refetchInstances} />
<Link to={pb.instancesNew({ project })} className={buttonStyle({ size: 'sm' })}>
New Instance
</Link>
<CreateLink to={pb.instancesNew({ project })}>New Instance</CreateLink>
</TableActions>
<Table columns={columns} emptyState={<EmptyState />} rowHeight="large" />
</>
Expand Down
12 changes: 5 additions & 7 deletions app/pages/project/instances/instance/tabs/NetworkingTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns, DescriptionCell } from '~/table/columns/common'
import { Table } from '~/table/Table'
import { Badge } from '~/ui/lib/Badge'
import { Button } from '~/ui/lib/Button'
import { CreateButton } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { TableControls, TableEmptyBox, TableTitle } from '~/ui/lib/Table'
import { TipIcon } from '~/ui/lib/TipIcon'
Expand Down Expand Up @@ -323,14 +323,13 @@ export function NetworkingTab() {
<>
<TableControls>
<TableTitle id="attached-ips-label">External IPs</TableTitle>
<Button
size="sm"
<CreateButton
onClick={() => setAttachModalOpen(true)}
disabled={!!disabledReason}
disabledReason={disabledReason}
>
Attach floating IP
</Button>
</CreateButton>
{attachModalOpen && (
<AttachFloatingIpModal
floatingIps={availableIps}
Expand All @@ -344,8 +343,7 @@ export function NetworkingTab() {

<TableControls className="mt-8">
<TableTitle id="nics-label">Network interfaces</TableTitle>
<Button
size="sm"
<CreateButton
onClick={() => setCreateModalOpen(true)}
disabled={!canUpdateNic}
disabledReason={
Expand All @@ -356,7 +354,7 @@ export function NetworkingTab() {
}
>
Add network interface
</Button>
</CreateButton>
{createModalOpen && (
<CreateNetworkInterfaceForm
onDismiss={() => setCreateModalOpen(false)}
Expand Down
8 changes: 3 additions & 5 deletions app/pages/project/snapshots/SnapshotsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
import { createColumnHelper } from '@tanstack/react-table'
import { useCallback } from 'react'
import { Link, Outlet, useNavigate, type LoaderFunctionArgs } from 'react-router-dom'
import { Outlet, useNavigate, type LoaderFunctionArgs } from 'react-router-dom'

import {
apiQueryClient,
Expand All @@ -26,7 +26,7 @@ import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { Badge } from '~/ui/lib/Badge'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions } from '~/ui/lib/Table'
Expand Down Expand Up @@ -136,9 +136,7 @@ export function SnapshotsPage() {
<PageTitle icon={<Snapshots24Icon />}>Snapshots</PageTitle>
</PageHeader>
<TableActions>
<Link to={pb.snapshotsNew({ project })} className={buttonStyle({ size: 'sm' })}>
New Snapshot
</Link>
<CreateLink to={pb.snapshotsNew({ project })}>New snapshot</CreateLink>
</TableActions>
<Table columns={columns} emptyState={<EmptyState />} />
<Outlet />
Expand Down
6 changes: 2 additions & 4 deletions app/pages/project/vpcs/VpcPage/tabs/VpcFirewallRulesTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import { TypeValueCell } from '~/table/cells/TypeValueCell'
import { getActionsCol } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { Table } from '~/table/Table'
import { Button } from '~/ui/lib/Button'
import { CreateButton } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { TableEmptyBox } from '~/ui/lib/Table'
import { sortBy } from '~/util/array'
Expand Down Expand Up @@ -134,9 +134,7 @@ export const VpcFirewallRulesTab = () => {
return (
<>
<div className="mb-3 flex justify-end space-x-2">
<Button size="sm" onClick={() => setCreateModalOpen(true)}>
New rule
</Button>
<CreateButton onClick={() => setCreateModalOpen(true)}>New rule</CreateButton>
{createModalOpen && (
<CreateFirewallRuleForm
existingRules={rules}
Expand Down
6 changes: 2 additions & 4 deletions app/pages/project/vpcs/VpcPage/tabs/VpcSubnetsTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { TwoLineCell } from '~/table/cells/TwoLineCell'
import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { useQueryTable } from '~/table/QueryTable'
import { Button } from '~/ui/lib/Button'
import { CreateButton } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'

const colHelper = createColumnHelper<VpcSubnet>()
Expand Down Expand Up @@ -77,9 +77,7 @@ export const VpcSubnetsTab = () => {
return (
<>
<div className="mb-3 flex justify-end space-x-2">
<Button size="sm" onClick={() => setCreating(true)}>
New subnet
</Button>
<CreateButton onClick={() => setCreating(true)}>New subnet</CreateButton>
{creating && <CreateSubnetForm onDismiss={() => setCreating(false)} />}
{editing && <EditSubnetForm editing={editing} onDismiss={() => setEditing(null)} />}
</div>
Expand Down
8 changes: 3 additions & 5 deletions app/pages/project/vpcs/VpcsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/
import { createColumnHelper } from '@tanstack/react-table'
import { useCallback, useMemo } from 'react'
import { Link, Outlet, useNavigate, type LoaderFunctionArgs } from 'react-router-dom'
import { Outlet, useNavigate, type LoaderFunctionArgs } from 'react-router-dom'

import {
apiQueryClient,
Expand All @@ -24,7 +24,7 @@ import { makeLinkCell } from '~/table/cells/LinkCell'
import { getActionsCol, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions } from '~/ui/lib/Table'
Expand Down Expand Up @@ -122,9 +122,7 @@ export function VpcsPage() {
<PageTitle icon={<Networking24Icon />}>VPCs</PageTitle>
</PageHeader>
<TableActions>
<Link to={pb.vpcsNew({ project })} className={buttonStyle({ size: 'sm' })}>
New Vpc
</Link>
<CreateLink to={pb.vpcsNew({ project })}>New Vpc</CreateLink>
</TableActions>
<Table columns={columns} emptyState={<EmptyState />} />
<Outlet />
Expand Down
14 changes: 5 additions & 9 deletions app/pages/system/networking/IpPoolPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import { createColumnHelper } from '@tanstack/react-table'
import { useCallback, useMemo, useState } from 'react'
import { Link, Outlet, type LoaderFunctionArgs } from 'react-router-dom'
import { Outlet, type LoaderFunctionArgs } from 'react-router-dom'

import {
apiQueryClient,
Expand Down Expand Up @@ -36,12 +36,12 @@ import { LinkCell } from '~/table/cells/LinkCell'
import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateButton, CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { Message } from '~/ui/lib/Message'
import { Modal } from '~/ui/lib/Modal'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableControls, TableControlsButton, TableControlsText } from '~/ui/lib/Table'
import { TableControls, TableControlsText } from '~/ui/lib/Table'
import { Tabs } from '~/ui/lib/Tabs'
import { links } from '~/util/links'
import { pb } from '~/util/path-builder'
Expand Down Expand Up @@ -192,9 +192,7 @@ function IpRangesTable() {
return (
<>
<div className="mb-3 flex justify-end space-x-2">
<Link to={pb.ipPoolRangeAdd({ pool })} className={buttonStyle({ size: 'sm' })}>
Add range
</Link>
<CreateLink to={pb.ipPoolRangeAdd({ pool })}>Add range</CreateLink>
</div>
<Table columns={columns} emptyState={emptyState} />
</>
Expand Down Expand Up @@ -286,9 +284,7 @@ function LinkedSilosTable() {
learn more about{' '}
<ExternalLink href={links.ipPoolsDocs}>managing IP pools</ExternalLink>.
</TableControlsText>
<TableControlsButton onClick={() => setShowLinkModal(true)}>
Link silo
</TableControlsButton>
<CreateButton onClick={() => setShowLinkModal(true)}>Link silo</CreateButton>
</TableControls>
<Table columns={columns} emptyState={emptyState} />
{showLinkModal && <LinkSiloModal onDismiss={() => setShowLinkModal(false)} />}
Expand Down
8 changes: 3 additions & 5 deletions app/pages/system/networking/IpPoolsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import { createColumnHelper } from '@tanstack/react-table'
import { useCallback, useMemo } from 'react'
import { Link, Outlet, useNavigate } from 'react-router-dom'
import { Outlet, useNavigate } from 'react-router-dom'

import {
apiQueryClient,
Expand All @@ -27,7 +27,7 @@ import { makeLinkCell } from '~/table/cells/LinkCell'
import { useColsWithActions, type MenuAction } from '~/table/columns/action-col'
import { Columns } from '~/table/columns/common'
import { PAGE_SIZE, useQueryTable } from '~/table/QueryTable'
import { buttonStyle } from '~/ui/lib/Button'
import { CreateLink } from '~/ui/lib/CreateButton'
import { EmptyMessage } from '~/ui/lib/EmptyMessage'
import { PageHeader, PageTitle } from '~/ui/lib/PageHeader'
import { TableActions } from '~/ui/lib/Table'
Expand Down Expand Up @@ -127,9 +127,7 @@ export function IpPoolsPage() {
<PageTitle icon={<Networking24Icon />}>IP Pools</PageTitle>
</PageHeader>
<TableActions>
<Link to={pb.ipPoolsNew()} className={buttonStyle({ size: 'sm' })}>
New IP Pool
</Link>
<CreateLink to={pb.ipPoolsNew()}>New IP Pool</CreateLink>
</TableActions>
<Table columns={columns} emptyState={<EmptyState />} />
<Outlet />
Expand Down
Loading
Loading