The answer is B: teal hexagon.

The rule
The pattern repeats every 3 things: teal hexagon, teal hexagon, teal triangle. Then it starts again from the beginning.
The pattern as Python code
Here is a tiny Python program that follows the same rule. Type it into IDLE and run it to print the whole pattern, including the answer.
pattern = ["teal hexagon", "teal hexagon", "teal triangle"]
for position in range(8):
print(position + 1, pattern[position % len(pattern)])
When you run it, Python prints:
1 teal hexagon 2 teal hexagon 3 teal triangle 4 teal hexagon 5 teal hexagon 6 teal triangle 7 teal hexagon 8 teal hexagon
Pixel says: Try changing a number in the code and run it again. Can you make the pattern go on for 20 steps? Meow!