Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5f683ea

Browse files
committed
Fix up
1 parent9b84598 commit5f683ea

File tree

8 files changed

+32
-31
lines changed

8 files changed

+32
-31
lines changed

‎site/.eslintrc.yaml‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,6 @@ rules:
9292
message:
9393
"Use path imports to avoid pulling in unused modules. See:
9494
https://material-ui.com/guides/minimizing-bundle-size/"
95-
-name:"@material-ui/core/Tooltip"
96-
message:"Use the custom Tooltip on componens/Tooltip"
9795
no-storage/no-browser-storage:error
9896
no-unused-vars:"off"
9997
"object-curly-spacing":"off"

‎site/components/Button/CopyButton.tsx‎

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import{makeStyles}from"@material-ui/core/styles"
22
importButtonfrom"@material-ui/core/Button"
33
importTooltipfrom"@material-ui/core/Tooltip"
4-
importReactfrom"react"
4+
importCheckfrom"@material-ui/icons/Check"
5+
importReact,{useState}from"react"
56
import{FileCopy}from"../Icons"
67

78
interfaceCopyButtonProps{
@@ -14,11 +15,16 @@ interface CopyButtonProps {
1415
*/
1516
exportconstCopyButton:React.FC<CopyButtonProps>=({ className="", text})=>{
1617
conststyles=useStyles()
17-
18+
const[isCopied,setIsCopied]=useState<boolean>(false)
1819

1920
constcopyToClipboard=async():Promise<void>=>{
2021
try{
2122
awaitwindow.navigator.clipboard.writeText(text)
23+
setIsCopied(true)
24+
25+
window.setTimeout(()=>{
26+
setIsCopied(false)
27+
},1000)
2228
}catch(err){
2329
constwrappedErr=newError("copyToClipboard: failed to copy text to clipboard")
2430
if(errinstanceofError){
@@ -31,12 +37,8 @@ export const CopyButton: React.FC<CopyButtonProps> = ({ className = "", text })
3137
return(
3238
<Tooltiptitle="Copy to Clipboard"placement="top">
3339
<divclassName={`${styles.copyButtonWrapper}${className}`}>
34-
<Button
35-
className={styles.copyButton}
36-
onClick={copyToClipboard}
37-
size="small"
38-
>
39-
<FileCopyclassName={styles.fileCopyIcon}/>
40+
<ButtonclassName={styles.copyButton}onClick={copyToClipboard}size="small">
41+
{isCopied ?<CheckclassName={styles.fileCopyIcon}/> :<FileCopyclassName={styles.fileCopyIcon}/>}
4042
</Button>
4143
</div>
4244
</Tooltip>
@@ -64,4 +66,3 @@ const useStyles = makeStyles((theme) => ({
6466
height:20,
6567
},
6668
}))
67-

‎site/components/CodeExample/index.stories.tsx‎renamed to ‎site/components/CodeExample/CodeExample.stories.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import{Story}from"@storybook/react"
22
importReactfrom"react"
3-
import{CodeExample,CodeExampleProps}from"./index"
3+
import{CodeExample,CodeExampleProps}from"./CodeExample"
44

55
constsampleCode=`echo "Hello, world"`
66

‎site/components/CodeExample/index.test.tsx‎renamed to ‎site/components/CodeExample/CodeExample.test.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import{screen}from"@testing-library/react"
22
import{render}from"../../test_helpers"
33
importReactfrom"react"
4-
import{CodeExample}from"./index"
4+
import{CodeExample}from"./CodeExample"
55

66
describe("CodeExample",()=>{
77
it("renders code",async()=>{

‎site/components/CodeExample/index.tsx‎renamed to ‎site/components/CodeExample/CodeExample.tsx‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ import { makeStyles } from "@material-ui/core/styles"
22
importReactfrom"react"
33
import{MONOSPACE_FONT_FAMILY}from"../../theme/constants"
44

5-
import{CopyButton}from"./../Button"
5+
import{CopyButton}from"../Button"
66

77
exportinterfaceCodeExampleProps{
88
code:string
99
}
1010

11+
/**
12+
* Component to show single-line code examples, with a copy button
13+
*/
1114
exportconstCodeExample:React.FC<CodeExampleProps>=({ code})=>{
1215
conststyles=useStyles()
1316

@@ -23,7 +26,8 @@ const useStyles = makeStyles((theme) => ({
2326
root:{
2427
display:"flex",
2528
flexDirection:"row",
26-
justifyContent:"flex-start",
29+
justifyContent:"space-between",
30+
alignItems:"center",
2731
background:theme.palette.background.default,
2832
color:theme.palette.codeBlock.contrastText,
2933
fontFamily:MONOSPACE_FONT_FAMILY,
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export*from"./CodeExample"

‎site/components/Icons/FileCopy.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ export const FileCopy: typeof SvgIcon = (props) => (
88
fill="currentColor"
99
/>
1010
</SvgIcon>
11-
)
11+
)

‎site/pages/projects/index.tsx‎

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
importReactfrom"react"
22
import{makeStyles}from"@material-ui/core/styles"
33
importPaperfrom"@material-ui/core/Paper"
4-
import{useRouter}from"next/router"
54
importLinkfrom"next/link"
65
import{EmptyState}from"../../components"
76
import{ErrorSummary}from"../../components/ErrorSummary"
@@ -14,11 +13,10 @@ import { FullScreenLoader } from "../../components/Loader/FullScreenLoader"
1413

1514
import{Organization,Project}from"./../../api"
1615
importuseSWRfrom"swr"
17-
import{CodeExample}from"../../components/CodeExample"
16+
import{CodeExample}from"../../components/CodeExample/CodeExample"
1817

1918
constProjectsPage:React.FC=()=>{
2019
conststyles=useStyles()
21-
constrouter=useRouter()
2220
const{ me, signOut}=useUser(true)
2321
const{data:projects, error}=useSWR<Project[]|null,Error>("/api/v2/projects")
2422
const{data:orgs,error:orgsError}=useSWR<Organization[],Error>("/api/v2/users/me/organizations")
@@ -35,10 +33,6 @@ const ProjectsPage: React.FC = () => {
3533
return<FullScreenLoader/>
3634
}
3735

38-
constcreateProject=()=>{
39-
voidrouter.push("/projects/create")
40-
}
41-
4236
// Create a dictionary of organization ID -> organization Name
4337
// Needed to properly construct links to dive into a project
4438
constorgDictionary=orgs.reduce((acc:Record<string,string>,curr:Organization)=>{
@@ -58,14 +52,14 @@ const ProjectsPage: React.FC = () => {
5852
},
5953
]
6054

61-
constdescription=<div>
62-
<div>Run the following command to get started:</div>
63-
<CodeExamplecode="coder project create"/>
64-
</div>
55+
constdescription=(
56+
<div>
57+
<divclassName={styles.descriptionLabel}>Run the following command to get started:</div>
58+
<CodeExamplecode="coder project create"/>
59+
</div>
60+
)
6561

66-
constemptyState=<EmptyState
67-
message="No projects have been created yet"
68-
description={description}/>
62+
constemptyState=<EmptyStatemessage="No projects have been created yet"description={description}/>
6963

7064
consttableProps={
7165
title:"All Projects",
@@ -88,11 +82,14 @@ const ProjectsPage: React.FC = () => {
8882
)
8983
}
9084

91-
constuseStyles=makeStyles(()=>({
85+
constuseStyles=makeStyles((theme)=>({
9286
root:{
9387
display:"flex",
9488
flexDirection:"column",
9589
},
90+
descriptionLabel:{
91+
marginBottom:theme.spacing(1),
92+
},
9693
}))
9794

9895
exportdefaultProjectsPage

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp