Skip to content

Commit c92880b

Browse files
author
Milan Pavlik
committed
Clean up
1 parent 46630fd commit c92880b

21 files changed

+123
-1535
lines changed

app/src/App.css

-24
This file was deleted.

app/src/Stories.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class Stories extends React.Component<StoriesProps, {}> {
3838
<Grid columns={2} stackable={true} divided={'vertically'}>
3939
<Grid.Column width={4}>
4040
<StoryList
41+
selected={this.props.selected}
4142
stories={this.props.stories}
4243
onStorySelect={(id: number) => this.props.dispatch(selectStory(id))}
4344
/>

app/src/StoryList.tsx

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,34 @@
11
import * as React from 'react';
2-
import { Item } from 'semantic-ui-react';
2+
import { Item, Icon } from 'semantic-ui-react';
33
import {Item as Story } from './proto/hackernews_pb';
44

55
type StoryListProps = {
66
stories: Story.AsObject[],
7+
selected: Story.AsObject | null,
78
onStorySelect: (id: number) => void
89
};
910

1011
const StoryList: React.SFC<StoryListProps> = (props) => {
1112
return (
12-
<Item.Group>
13+
<Item.Group divided={true}>
1314
{props.stories.map((story, i) =>
1415
<Item
16+
style={story.id && props.selected && props.selected.id && story.id.id === props.selected.id.id
17+
? {'backgroundColor': 'rgba(0, 0, 0, 0.08)'}
18+
: {}
19+
}
1520
key={i}
1621
onClick={() => {
1722
if (story.id && story.id.id) {
1823
props.onStorySelect(story.id.id);
1924
}
2025
}}
2126
>
22-
<Item.Content>
27+
<Item.Content
28+
29+
>
2330
<Item.Header as="a">{story.title}</Item.Header>
24-
<Item.Meta>By: {story.by}</Item.Meta>
25-
<Item.Extra>{story.score} {story.time}</Item.Extra>
31+
<Item.Extra><Icon name="star" />{story.score} | <Icon name="user" />{story.by}</Item.Extra>
2632
</Item.Content>
2733
</Item>
2834
)}

app/src/StoryView.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ type StoryViewProps = {
66
};
77

88
const StoryView: React.SFC<StoryViewProps> = (props) => {
9+
const url = `http://localhost:8900/article-proxy?q=${encodeURIComponent(props.story.url)}`;
910
return (
1011
<iframe
1112
frameBorder="0"
1213
style={{
1314
height: '100vh',
1415
width: '100%',
1516
}}
16-
src={props.story.url}
17+
src={url}
1718
/>
1819
);
1920
};

app/src/actions/stories.ts

-17
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,11 @@ import { Item, ListStoriesRequest, ListStoriesResponse } from '../proto/hackerne
33
import { GrpcAction, grpcRequest } from '../middleware/grpc';
44
import { Code, Metadata } from 'grpc-web-client';
55
import { HackerNewsService } from '../proto/hackernews_pb_service';
6-
import { PingRequest, PingResponse } from '../proto/ping_pb';
7-
import { PingService } from '../proto/ping_pb_service';
86

97
export const STORIES_INIT = 'STORIES_INIT';
108
export const ADD_STORY = 'ADD_STORY';
119
export const SELECT_STORY = 'SELECT_STORY';
1210

13-
export const ping = () => {
14-
return grpcRequest<PingRequest, PingResponse>({
15-
request: new PingRequest(),
16-
onEnd: (code: Code, message: string | undefined, trailers: Metadata): Action | void => {
17-
return;
18-
},
19-
host: 'http://localhost:8900',
20-
methodDescriptor: PingService.Ping,
21-
onMessage: (message) => {
22-
console.log(message);
23-
return;
24-
}
25-
});
26-
};
27-
2811
type AddStory = {
2912
type: typeof ADD_STORY,
3013
payload: Item,

app/src/index.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as React from 'react';
22
import * as ReactDOM from 'react-dom';
33
import { Provider } from 'react-redux';
4-
import registerServiceWorker from './registerServiceWorker';
54
import './index.css';
65
import store from './store';
76
import Stories from './Stories';
@@ -14,4 +13,3 @@ ReactDOM.render(
1413
</Provider>,
1514
document.getElementById('root') as HTMLElement
1615
);
17-
registerServiceWorker();

app/src/logo.svg

-7
This file was deleted.

app/src/proto/hackernews_pb.d.ts

+11-96
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,10 @@
33

44
import * as jspb from "google-protobuf";
55

6-
export class ItemId extends jspb.Message {
6+
export class Story extends jspb.Message {
77
getId(): number;
88
setId(value: number): void;
99

10-
serializeBinary(): Uint8Array;
11-
toObject(includeInstance?: boolean): ItemId.AsObject;
12-
static toObject(includeInstance: boolean, msg: ItemId): ItemId.AsObject;
13-
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
14-
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
15-
static serializeBinaryToWriter(message: ItemId, writer: jspb.BinaryWriter): void;
16-
static deserializeBinary(bytes: Uint8Array): ItemId;
17-
static deserializeBinaryFromReader(message: ItemId, reader: jspb.BinaryReader): ItemId;
18-
}
19-
20-
export namespace ItemId {
21-
export type AsObject = {
22-
id: number,
23-
}
24-
}
25-
26-
export class Item extends jspb.Message {
27-
hasId(): boolean;
28-
clearId(): void;
29-
getId(): ItemId | undefined;
30-
setId(value?: ItemId): void;
31-
3210
getScore(): number;
3311
setScore(value: number): void;
3412

@@ -44,36 +22,32 @@ export class Item extends jspb.Message {
4422
getUrl(): string;
4523
setUrl(value: string): void;
4624

47-
getType(): ItemType;
48-
setType(value: ItemType): void;
49-
5025
serializeBinary(): Uint8Array;
51-
toObject(includeInstance?: boolean): Item.AsObject;
52-
static toObject(includeInstance: boolean, msg: Item): Item.AsObject;
26+
toObject(includeInstance?: boolean): Story.AsObject;
27+
static toObject(includeInstance: boolean, msg: Story): Story.AsObject;
5328
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
5429
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
55-
static serializeBinaryToWriter(message: Item, writer: jspb.BinaryWriter): void;
56-
static deserializeBinary(bytes: Uint8Array): Item;
57-
static deserializeBinaryFromReader(message: Item, reader: jspb.BinaryReader): Item;
30+
static serializeBinaryToWriter(message: Story, writer: jspb.BinaryWriter): void;
31+
static deserializeBinary(bytes: Uint8Array): Story;
32+
static deserializeBinaryFromReader(message: Story, reader: jspb.BinaryReader): Story;
5833
}
5934

60-
export namespace Item {
35+
export namespace Story {
6136
export type AsObject = {
62-
id?: ItemId.AsObject,
37+
id: number,
6338
score: number,
6439
title: string,
6540
by: string,
6641
time: number,
6742
url: string,
68-
type: ItemType,
6943
}
7044
}
7145

7246
export class ListStoriesResponse extends jspb.Message {
7347
hasStory(): boolean;
7448
clearStory(): void;
75-
getStory(): Item | undefined;
76-
setStory(value?: Item): void;
49+
getStory(): Story | undefined;
50+
setStory(value?: Story): void;
7751

7852
serializeBinary(): Uint8Array;
7953
toObject(includeInstance?: boolean): ListStoriesResponse.AsObject;
@@ -87,7 +61,7 @@ export class ListStoriesResponse extends jspb.Message {
8761

8862
export namespace ListStoriesResponse {
8963
export type AsObject = {
90-
story?: Item.AsObject,
64+
story?: Story.AsObject,
9165
}
9266
}
9367

@@ -107,62 +81,3 @@ export namespace ListStoriesRequest {
10781
}
10882
}
10983

110-
export class GetStoryRequest extends jspb.Message {
111-
hasId(): boolean;
112-
clearId(): void;
113-
getId(): ItemId | undefined;
114-
setId(value?: ItemId): void;
115-
116-
serializeBinary(): Uint8Array;
117-
toObject(includeInstance?: boolean): GetStoryRequest.AsObject;
118-
static toObject(includeInstance: boolean, msg: GetStoryRequest): GetStoryRequest.AsObject;
119-
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
120-
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
121-
static serializeBinaryToWriter(message: GetStoryRequest, writer: jspb.BinaryWriter): void;
122-
static deserializeBinary(bytes: Uint8Array): GetStoryRequest;
123-
static deserializeBinaryFromReader(message: GetStoryRequest, reader: jspb.BinaryReader): GetStoryRequest;
124-
}
125-
126-
export namespace GetStoryRequest {
127-
export type AsObject = {
128-
id?: ItemId.AsObject,
129-
}
130-
}
131-
132-
export class GetStoryResponse extends jspb.Message {
133-
hasStory(): boolean;
134-
clearStory(): void;
135-
getStory(): Item | undefined;
136-
setStory(value?: Item): void;
137-
138-
getHtml(): Uint8Array | string;
139-
getHtml_asU8(): Uint8Array;
140-
getHtml_asB64(): string;
141-
setHtml(value: Uint8Array | string): void;
142-
143-
serializeBinary(): Uint8Array;
144-
toObject(includeInstance?: boolean): GetStoryResponse.AsObject;
145-
static toObject(includeInstance: boolean, msg: GetStoryResponse): GetStoryResponse.AsObject;
146-
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
147-
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
148-
static serializeBinaryToWriter(message: GetStoryResponse, writer: jspb.BinaryWriter): void;
149-
static deserializeBinary(bytes: Uint8Array): GetStoryResponse;
150-
static deserializeBinaryFromReader(message: GetStoryResponse, reader: jspb.BinaryReader): GetStoryResponse;
151-
}
152-
153-
export namespace GetStoryResponse {
154-
export type AsObject = {
155-
story?: Item.AsObject,
156-
html: Uint8Array | string,
157-
}
158-
}
159-
160-
export enum ItemType {
161-
UNKNOWN = 0,
162-
JOB = 1,
163-
STORY = 2,
164-
COMMENT = 3,
165-
POLL = 4,
166-
POLLOPT = 5,
167-
}
168-

0 commit comments

Comments
 (0)