]> Untitled Git - lemmy.git/commitdiff
Adding some UI cancel buttons.
authorDessalines <tyhou13@gmx.com>
Fri, 5 Apr 2019 02:08:21 +0000 (19:08 -0700)
committerDessalines <tyhou13@gmx.com>
Fri, 5 Apr 2019 02:08:21 +0000 (19:08 -0700)
ui/src/components/community-form.tsx
ui/src/components/community.tsx
ui/src/components/post-form.tsx
ui/src/components/post-listing.tsx
ui/src/components/sidebar.tsx

index a8ea7b118db2d4754100ddb4c5bafa374c6734c9..0cf67983ed11efecf4150bd935288d5d8626c0e2 100644 (file)
@@ -67,26 +67,26 @@ export class CommunityForm extends Component<CommunityFormProps, CommunityFormSt
     return (
       <form onSubmit={linkEvent(this, this.handleCreateCommunitySubmit)}>
         <div class="form-group row">
-          <label class="col-sm-2 col-form-label">Name</label>
-          <div class="col-sm-10">
+          <label class="col-12 col-form-label">Name</label>
+          <div class="col-12">
             <input type="text" class="form-control" value={this.state.communityForm.name} onInput={linkEvent(this, this.handleCommunityNameChange)} required minLength={3} pattern="[a-z0-9_]+" title="lowercase, underscores, and no spaces."/>
           </div>
         </div>
         <div class="form-group row">
-          <label class="col-sm-2 col-form-label">Title / Headline</label>
-          <div class="col-sm-10">
+          <label class="col-12 col-form-label">Title</label>
+          <div class="col-12">
             <input type="text" value={this.state.communityForm.title} onInput={linkEvent(this, this.handleCommunityTitleChange)} class="form-control" required minLength={3} />
           </div>
         </div>
         <div class="form-group row">
-          <label class="col-sm-2 col-form-label">Description / Sidebar</label>
-          <div class="col-sm-10">
+          <label class="col-12 col-form-label">Sidebar</label>
+          <div class="col-12">
             <textarea value={this.state.communityForm.description} onInput={linkEvent(this, this.handleCommunityDescriptionChange)} class="form-control" rows={6} />
           </div>
         </div>
         <div class="form-group row">
-          <label class="col-sm-2 col-form-label">Category</label>
-          <div class="col-sm-10">
+          <label class="col-12 col-form-label">Category</label>
+          <div class="col-12">
             <select class="form-control" value={this.state.communityForm.category_id} onInput={linkEvent(this, this.handleCommunityCategoryChange)}>
               {this.state.categories.map(category =>
                 <option value={category.id}>{category.name}</option>
@@ -95,8 +95,9 @@ export class CommunityForm extends Component<CommunityFormProps, CommunityFormSt
           </div>
         </div>
         <div class="form-group row">
-          <div class="col-sm-10">
-            <button type="submit" class="btn btn-secondary">{this.props.community ? 'Edit' : 'Create'} Community</button>
+          <div class="col-12">
+            <button type="submit" class="btn btn-secondary mr-2">{this.props.community ? 'Save' : 'Create'}</button>
+            {this.props.community && <button type="button" class="btn btn-secondary" onClick={linkEvent(this, this.handleCancel)}>Cancel</button>}
           </div>
         </div>
       </form>
@@ -132,6 +133,10 @@ export class CommunityForm extends Component<CommunityFormProps, CommunityFormSt
     i.setState(i.state);
   }
 
+  handleCancel(i: CommunityForm, event) {
+    i.props.onCancel();
+  }
+
   parseMessage(msg: any) {
     let op: UserOperation = msgOp(msg);
     console.log(msg);
index ed2cd98ee116c506f7e8ee37f3f6afd4ba068f60..d5f75b45e7c6499481948dc0802753adc141f5ee 100644 (file)
@@ -71,7 +71,7 @@ export class Community extends Component<any, State> {
     return (
       <div class="container">
         <div class="row">
-          <div class="col-12 col-sm-10 col-lg-9">
+          <div class="col-12 col-lg-9">
             <h4>/f/{this.state.community.name}</h4>
             <div>{this.selects()}</div>
             {this.state.posts.length > 0 
@@ -80,7 +80,7 @@ export class Community extends Component<any, State> {
               : <div>no listings</div>
             }
           </div>
-          <div class="col-12 col-sm-2 col-lg-3">
+          <div class="col-12 col-lg-3">
             <Sidebar community={this.state.community} moderators={this.state.moderators} />
           </div>
         </div>
index c581ae033ec21dc6d1d56f70c255fc60e5f51663..a8621ceda748d6f9f6b5a479267fc59a87491ed7 100644 (file)
@@ -95,7 +95,8 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
           </div>
           <div class="form-group row">
             <div class="col-sm-10">
-              <button type="submit" class="btn btn-secondary">{this.props.post ? 'Edit' : 'Create'} Post</button>
+              <button type="submit" class="btn btn-secondary mr-2">{this.props.post ? 'Save' : 'Create'}</button>
+              {this.props.post && <button type="button" class="btn btn-secondary" onClick={linkEvent(this, this.handleCancel)}>Cancel</button>}
             </div>
           </div>
         </form>
@@ -132,6 +133,10 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
     i.setState(i.state);
   }
 
+  handleCancel(i: PostForm, event) {
+    i.props.onCancel();
+  }
+
   parseMessage(msg: any) {
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
index 348190feb17c3bd6102eb65c6d132967a6c19a2f..516baad32e340d0cb6bec66bc19180ad762a8b2d 100644 (file)
@@ -34,6 +34,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
     this.handlePostLike = this.handlePostLike.bind(this);
     this.handlePostDisLike = this.handlePostDisLike.bind(this);
     this.handleEditPost = this.handleEditPost.bind(this);
+    this.handleEditCancel = this.handleEditCancel.bind(this);
   }
 
   render() {
@@ -41,7 +42,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
       <div>
         {!this.state.showEdit 
           ? this.listing()
-          : <PostForm post={this.props.post} onEdit={this.handleEditPost} />
+          : <PostForm post={this.props.post} onEdit={this.handleEditPost} onCancel={this.handleEditCancel}/>
         }
       </div>
     )
@@ -144,6 +145,11 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
     i.setState(i.state);
   }
 
+  handleEditCancel() {
+    this.state.showEdit = false;
+    this.setState(this.state);
+  }
+
   // The actual editing is done in the recieve for post
   handleEditPost(post: Post) {
     this.state.showEdit = false;
index ec64e518b554912c176c00843cac3fba847ddea7..3f11749c89d01591cb2df186705df688a136a3f3 100644 (file)
@@ -24,6 +24,7 @@ export class Sidebar extends Component<SidebarProps, SidebarState> {
     super(props, context);
     this.state = this.emptyState;
     this.handleEditCommunity = this.handleEditCommunity.bind(this);
+    this.handleEditCancel = this.handleEditCancel.bind(this);
   }
 
   render() {
@@ -31,7 +32,7 @@ export class Sidebar extends Component<SidebarProps, SidebarState> {
       <div>
         {!this.state.showEdit 
           ? this.sidebar()
-          : <CommunityForm community={this.props.community} onEdit={this.handleEditCommunity} />
+          : <CommunityForm community={this.props.community} onEdit={this.handleEditCommunity} onCancel={this.handleEditCancel}/>
         }
       </div>
     )
@@ -86,6 +87,11 @@ export class Sidebar extends Component<SidebarProps, SidebarState> {
     this.setState(this.state);
   }
 
+  handleEditCancel() {
+    this.state.showEdit = false;
+    this.setState(this.state);
+  }
+
   // TODO no deleting communities yet
   handleDeleteClick(i: Sidebar, event) {
   }